2016-05-23 5 views
4
unterstützt

Ich versuche, eine UDF zu erstellen, die negativen Werte in einer Spalte ersetzen wird mit 0- Schema für Typen Jeden nicht

Mein Datenrahmen wird - df bezeichnet und enthält eine Spalte namens avg_x . Dies ist mein Code für ein UDF Schaffung

val noNegative = udf {(avg_acc_x: Double) => if(avg_acc_x < 0) 0 else "avg_acc_x"} 

ich diesen Fehler

java.lang.UnsupportedOperationException: Schema for type Any is not supported 

df.printSchema kehrt

|-- avg_acc_x: double (nullable = false) 

so verstehe ich nicht, warum dieser Fehler auftritt?

Antwort

11

Es ist wegen der else, die eine String zurückgibt: "avg_acc_x". Nehmen Sie die Zitate weg:

val noNegative = udf {(avg_acc_x: Double) => if(avg_acc_x < 0) 0 else avg_acc_x}