Mehrere Zeilen in einem Spark-Dataframe zu einer einzelnen Zeile zusammenführen

8

Ich habe einen Datenrahmen mit 2 Spalten: Zeitstempel, Wert Zeitstempel ist eine Zeit seit der Epoche und Wert ist ein Gleitkommawert. Ich möchte Zeilen auf Durchschnittswerte von min zusammenführen. Das bedeutet, dass ich alle Zeilen nehmen möchte, deren Zeitstempel von der gleichen Rundenminute (60-Sekunden-Intervalle seit der Epoche) ist, und sie zu einer einzelnen Zeile zusammenfasse, wobei die Wertspalte der Mittelwert aller Werte ist.

Um ein Beispiel zu geben, nehmen wir an, dass mein Datenframe wie folgt aussieht:

%Vor%

Die ersten 4 Zeilen sind Teil derselben Min. (1441637160% 60 == 0, 1441637160 + 60 == 1441637220) Die letzten 2 Zeilen sind Teil eines anderen min. Ich möchte alle Zeilen der gleichen min zusammenführen. um ein Ergebnis zu erhalten, das wie folgt aussieht:

%Vor%

Was ist der beste Weg, das zu tun?

    
polo 07.09.2015, 14:57
quelle

2 Antworten

5

Sie können einfach gruppieren und aggregieren. Mit Daten als:

%Vor%

Importieren Sie erforderliche Funktionen und Klassen:

%Vor%

Intervallspalte erstellen:

%Vor%

und verwenden Sie es, um die Aggregation durchzuführen:

%Vor%     
zero323 07.09.2015, 17:40
quelle
1

Ordnen Sie zuerst den Zeitstempel dem Minutenbereich zu und verwenden Sie dann groupByKey, um die Durchschnittswerte zu berechnen. Zum Beispiel:

%Vor%     
Patrick McGloin 07.09.2015 15:42
quelle