Übergeben Sie Array als UDF-Parameter in Spark SQL

8

Ich versuche, einen Datenrahmen über eine Funktion zu transformieren, die ein Array als Parameter verwendet. Mein Code sieht ungefähr so ​​aus:

%Vor%

Aber beleuchtet Arrays und diese Skriptfehler nicht. Ich habe versucht, eine neue teilweise angewandte Funktion und dann das udf zu definieren:

%Vor%

Dies funktioniert auch nicht, da ich eine nullPointer-Ausnahme erhalte und es scheint, dass myArray nicht erkannt wird. Irgendwelche Ideen darüber, wie ich ein Array als Parameter an eine Funktion mit einem Datenrahmen übergebe?

In einer separaten Notiz ist jede Erklärung, warum etwas Einfaches wie die Verwendung einer Funktion auf einem Datenrahmen getan wird, so kompliziert (definieren Sie Funktion, definieren Sie sie als UDF usw.)?

    
J Calbreath 24.06.2015, 20:38
quelle

1 Antwort

7

Wahrscheinlich nicht die schönste Lösung, aber Sie können so etwas ausprobieren:

%Vor%

Sie könnten auch array von Literalen versuchen:

%Vor%

Bei einer Seitennotiz mit Map anstelle von Array ist wahrscheinlich eine bessere Idee:

%Vor%

Seit Spark 1.5.0 können Sie auch eine array Funktion verwenden:

%Vor%

Siehe auch Spark UDF mit varargs

    
zero323 24.06.2015 21:53
quelle