我在pyspark数据帧中有以下udf函数。代码工作正常,除非myFun1('oldColumn')
为null,我希望输出为空字符串而不是null。
myFun1 = udf(lambda x: myModule.myFunction1(x), StringType())
myDF = myDF.withColumn('newColumn', myFun1('oldColumn'))
是否可以在适当的位置执行此操作而不是创建另一个udf函数?谢谢!
答案 0 :(得分:3)
使用df.fillna()
或df.na.fill()
将空值替换为空字符串。
您可以通过提供要替换空值的列和值作为参数来按列进行替换:
myDF = myDF.na.fill({'oldColumn': ''})
Pyspark文档有an example:
>>> df4.na.fill({'age': 50, 'name': 'unknown'}).show()
+---+------+-------+
|age|height| name|
+---+------+-------+
| 10| 80| Alice|
| 5| null| Bob|
| 50| null| Tom|
| 50| null|unknown|
+---+------+-------+