Spark unionAlle mehrere Datenframes

8

Für eine Reihe von Datenrahmen

%Vor%

um sie alle zu vereinigen, mache ich

%Vor%

Gibt es eine elegante und skalierbare Möglichkeit, dies für eine beliebige Anzahl von Datenrahmen zu tun, zum Beispiel von

%Vor%     
echo 03.06.2016, 11:00
quelle

1 Antwort

19

Die einfachste Lösung ist reduce mit union ( unionAll in Spark & ​​lt; 2.0):

%Vor%

Dies ist relativ prägnant und sollte keine Daten aus dem Off-Heap-Speicher verschieben, aber die Verlängerung der Herkunft mit jeder Vereinigung erfordert nichtlineare Zeit, um die Plananalyse durchzuführen. Was kann ein Problem sein, wenn Sie versuchen, eine große Anzahl von DataFrames zu verschmelzen.

Sie können auch in RDDs konvertieren und SparkContext.union verwenden:

%Vor%

Es hält die kurzen Analysekosten niedrig, aber ansonsten ist es weniger effizient als das Zusammenführen von DataFrames direkt.

    
zero323 03.06.2016, 11:17
quelle