Gruppieren und Aggregieren I
Ein Teil dessen, was die Aggregation so mächtig macht, ist das Hinzufügen von Gruppen. PySpark hat eine ganze Klasse, die sich mit gruppierten Dataframes beschäftigt: pyspark.sql.GroupedData
; diese hast du in den letzten beiden Aufgaben gesehen.
Du hast gelernt, wie man einen gruppierten DataFrame erstellt, indem man die Methode .groupBy()
für einen DataFrame ohne Argumente aufruft.
Wenn du den Namen einer oder mehrerer Spalten in deinem DataFrame an die Methode .groupBy()
übergibst, verhalten sich die Aggregationsmethoden so, wie wenn du eine GROUP BY
-Anweisung in einer SQL-Abfrage verwendest!
Erinnere dich daran, dass eine SparkSession
mit dem Namen spark
bereits in deinem Arbeitsbereich liegt, zusammen mit dem Spark DataFrame flights
.
Diese Übung ist Teil des Kurses
Einführung in PySpark
Anleitung zur Übung
- Erstelle einen DataFrame namens
by_plane
, der nach der Spaltetailnum
gruppiert ist. - Verwende die Methode
.count()
ohne Argumente, um die Anzahl der Flüge jedes Flugzeugs zu zählen. - Erstelle einen DataFrame namens
by_origin
, der nach der Spalteorigin
gruppiert ist. - Finde mit
.avg()
den Mittelwert derair_time
-Spalte, um die durchschnittliche Dauer der Flüge von PDX und SEA zu ermitteln.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Group by tailnum
by_plane = flights.groupBy("____")
# Number of flights each plane made
by_plane.____.show()
# Group by origin
by_origin = flights.groupBy("____")
# Average duration of flights from PDX and SEA
by_origin.avg("____").show()