【问题标题】:Replace null values with N/A in a spark dataframe在火花数据框中用 N/A 替换空值
【发布时间】:2022-01-08 02:27:57
【问题描述】:

我正在尝试用 N/A 替换空值。我尝试过使用以下代码,但它们都不起作用:

df.withColumn("series_name", when($"series_name") === null,"n/a")
.otherwise($series_name)

df.withColumn("series_name", when(col("series_name") === null,"n/a")

我错过了什么?

    +--------------------+
    |         series_name|
    +--------------------+
    |Families of the M...|
    |                null|
    |      Ridiculousness|
    |                null|
    |                null|
    +--------------------+

【问题讨论】:

    标签: dataframe apache-spark pyspark apache-spark-sql


    【解决方案1】:

    我更喜欢使用coalesce

    from pyspark.sql import functions as f
    
    df.withColumn('series_name', f.expr("coalesce(series_name, 'n/a')"))
    

    【讨论】:

    • 合并有什么作用?你有文档参考吗?
    • 同mysql的ifnull函数
    • 是的,不是 sql 的粉丝 :) 奇怪的是它与减少数据集分区数的操作是同一个词。这有点令人困惑
    • 它是一个 spark 函数,你可以像 col 或 lit 一样使用它。我知道这与分区收集器同名:)
    【解决方案2】:

    你也可以使用 .fillna() 方法:

    df.fillna('N/A', subset=['series_name'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多