我有一個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