Ich möchte die Datumsspalten in DataFrame
analysieren, und für jede Datumsspalte kann sich die Auflösung für das Datum ändern (z. B. 2011/01/10 = & gt; 2011/01, wenn die Auflösung auf "Monat" eingestellt ist ").
Ich habe den folgenden Code geschrieben:
%Vor% Aber es funktioniert nicht. Es scheint, dass ich Column
s nur an UDFs übergeben kann. Und ich frage mich, ob es sehr langsam wird, wenn ich DataFrame
in RDD
umwandle und die Funktion auf jede Zeile anwende.
Kennt jemand die richtige Lösung? Vielen Dank!
Benutze ein bisschen Curry:
%Vor%und benutze es wie folgt:
%Vor% Als Randnotiz sollten Sie sich sql.functions.trunc
und sql.functions.date_format
ansehen. Diese sollten mindestens einen Teil der Arbeit ohne UDFs überhaupt ausführen.
Hinweis :
In Spark 2.2 oder höher können Sie typedLit
function:
die einen größeren Bereich von Literalen wie Seq
oder Map
unterstützen.
Sie können ein Literal Column
erstellen, das mit der Funktion lit(...)
in org.apache.spark.sql.functions
Zum Beispiel:
%Vor%Tags und Links scala apache-spark spark-dataframe apache-spark-sql