Ich frage mich, ob es eine Möglichkeit gibt, eine benutzerdefinierte Aggregationsfunktion für Spark-Datenrahmen über mehrere Spalten anzugeben.Aggregieren mehrerer Spalten mit benutzerdefinierten Funktion in Spark
Ich habe eine Tabelle wie folgt von der Art (Name, Artikel, Preis):
john | tomato | 1.99
john | carrot | 0.45
bill | apple | 0.99
john | banana | 1.29
bill | taco | 2.59
zu:
Ich möchte den Artikel aggregieren und es ist Kosten für jede Person in eine Liste wie folgt:
john | (tomato, 1.99), (carrot, 0.45), (banana, 1.29)
bill | (apple, 0.99), (taco, 2.59)
Ist dies in Datenrahmen möglich? Ich habe kürzlich über collect_list
gelernt, aber es scheint nur für eine Spalte zu arbeiten.
Gute Antwort! :) – eliasah
Ich habe 'col (...)' anstelle von '$" ... "' aus einem Grund verwendet - ich finde 'col (...)' arbeitet mit weniger Arbeit innerhalb von Dingen wie 'class' Definitionen . –
Gibt es irgendeine Funktion, um Spalten neu auszurichten, wie zum Beispiel in der Zip-Funktion, sagen Sie, dass Sie zuerst ein Element aus dem Ende der Spalte hinzufügen und eines aus dem Kopf entfernen und dann zippen? In diesem Fall können Sie zum Beispiel den nächsten Preis für die Artikel haben, wenn Sie die Preise täglich lesen und es eine Zeitspalte gibt. –