Ich habe mich gefragt, ob es eine Möglichkeit gibt, eine benutzerdefinierte Aggregationsfunktion für Spark-Dataframes über mehrere Spalten hinweg anzugeben.
Ich habe eine solche Tabelle vom Typ (Name, Artikel, Preis):
%Vor%zu:
Ich möchte den Artikel und seine Kosten für jede Person in einer Liste wie dieser zusammenfassen:
%Vor% Ist dies in Datenrahmen möglich? Ich habe kürzlich von collect_list
erfahren, aber es scheint nur für eine Spalte zu funktionieren.
Der einfachste Weg, dies als DataFrame
zu tun, besteht darin, zunächst zwei Listen zu sammeln und dann UDF
bis zip
die beiden Listen zusammen zu verwenden. Etwas wie:
Verwenden Sie die Funktion struct
, um die Spalten vor dem Sammeln als Liste zu gruppieren:
Ausgaben:
%Vor%Tags und Links scala apache-spark spark-dataframe orc