Ich habe einen DataFrame wie unten. Ich muss eine neue Spalte basierend auf vorhandenen Spalten erstellen.Hinzufügen neuer Spalten basierend auf Aggregation auf vorhandene Spalte in Spark DataFrame mithilfe von Scala
col1 col2
a 1
a 2
b 1
c 1
d 1
d 2
Output Data Frame sehen aus wie dieses
col1 col2 col3 col4
a 1 1 2
a 2 1 2
b 1 0 1
c 1 0 1
d 1 1 2
d 2 1 2
Die Logik, die ich verwendet habe col3 zu finden ist wenn Graf von col1> 1 und col4 max-Wert von col2 ist.
Ich bin vertraut mit, wie man es in SQL macht. Mit Dataframe DSL ist es jedoch schwierig, eine Lösung zu finden. Jede Hilfe wäre willkommen. Danke
, + 1 für Join und Gruppenkonzept. Nur zur Klarstellung col3 ist nicht die Summe von col2. Es ist die Anzahl von Col2. Wenn col2> 1 ist, sollte es 1 sein, ansonsten sollte es Null sein. Ohne Join gibt es einen Weg ?. Wenn ich riesige Daten verwende, sehe ich Speicherfehler. Danke – John
yup, änderte das – Ashish
Ja möchte ich auch die Lösung ohne eine Verbindung kennen –