我有一个DataFrame如下。在Dataframe中处理空值
Value1 Value2 Value3
30000 40000 50000
null 20000 10000
另外,我有一个UDF创建为
val testUDF=udf((a: Double, b: Double, c: Double) => {
if(a==null && b!=null && c!=null)
b+c
else
a+b+c
})
我有一个代码如下。
input.withColumn("checkNull", testUDF(col("value1"),col("value2"),col("value3"))).show
所得数据帧是
Value1 Value2 Value3 checkNull
30000 40000 50000 120000
null 20000 10000 null
在这里,代替对于第二行显示3000的列 “checkNUll” 时,它显示的,无效。任何我在做我的代码错误? 我不想用0替换它。因为,如果我想在上面进行乘法而不是加法,它将会失败。
您是否尝试过“是空的”和“非空”而不是? – Wonjin
用0替换空值,然后添加。 – philantrovert
是的。 a.isNull抛出一个错误说isNull不是Double的成员 – KishoreKumar