Ich habe einen DataFrame wie folgt.Umgang mit Nullwerten in Dataframe
Value1 Value2 Value3
30000 40000 50000
null 20000 10000
Auch ich habe ein UDF erstellt als
val testUDF=udf((a: Double, b: Double, c: Double) => {
if(a==null && b!=null && c!=null)
b+c
else
a+b+c
})
I wie unten einen Code haben.
input.withColumn("checkNull", testUDF(col("value1"),col("value2"),col("value3"))).show
Resultierende Datenrahmen ist als
Value1 Value2 Value3 checkNull
30000 40000 50000 120000
null 20000 10000 null
hier anstelle von 3000 für die zweite Zeile für die Spalte "checkNUll" anzeigt, ist es angezeigt, null. Was mache ich falsch in meinem Code? Ich möchte es nicht mit 0 ersetzen. Weil, wenn ich Multiplikation anstelle von oben tun will, wird es fehlschlagen.
haben Sie versucht "ist null" und "ist nicht null" statt? – Wonjin
Nullen durch 0 ersetzen und dann hinzufügen. – philantrovert
Ja. a.isNull löst einen Fehler aus, der besagt, dass isNull kein Mitglied von Double ist. – KishoreKumar