pyspark/dataframe:用空白替换 null

Eda*_*ame 4 python lambda dataframe

我在 pyspark 数据框中有以下 udf 函数。代码工作正常,除非myFun1('oldColumn')为空,我希望输出为空字符串而不是空。

myFun1 = udf(lambda x: myModule.myFunction1(x), StringType())
myDF = myDF.withColumn('newColumn', myFun1('oldColumn'))
Run Code Online (Sandbox Code Playgroud)

是否可以就地执行此操作而不是创建另一个 udf 函数?谢谢!

scm*_*cmz 8

使用df.fillna()df.na.fill()用空字符串替换空值对我有用。

您可以通过提供要替换空值的列和值作为参数来按列进行替换:

myDF = myDF.na.fill({'oldColumn': ''})
Run Code Online (Sandbox Code Playgroud)

Pyspark 文档有一个例子

>>> df4.na.fill({'age': 50, 'name': 'unknown'}).show()
+---+------+-------+
|age|height|   name|
+---+------+-------+
| 10|    80|  Alice|
|  5|  null|    Bob|
| 50|  null|    Tom|
| 50|  null|unknown|
+---+------+-------+
Run Code Online (Sandbox Code Playgroud)