Grupowanie i agregowanie I
Agregowanie staje się naprawdę potężnym narzędziem, gdy połączysz je z grupowaniem. PySpark udostępnia w tym celu specjalną klasę dla zgrupowanych ramek danych: pyspark.sql.GroupedData, którą widziałeś w dwóch poprzednich ćwiczeniach.
Wiesz już, jak utworzyć zgrupowaną ramkę danych, wywołując metodę .groupBy() na ramce danych bez żadnych argumentów.
Teraz zobaczysz, że przekazując do metody .groupBy() nazwę jednej lub więcej kolumn, metody agregujące działają tak samo jak instrukcja GROUP BY w zapytaniu SQL!
Pamiętaj, że w środowisku pracy masz już dostęp do sesji SparkSession o nazwie spark oraz do ramki danych Spark o nazwie flights.
To ćwiczenie jest częścią kursu
Podstawy PySpark
Instrukcje do ćwiczenia
- Utwórz ramkę danych o nazwie
by_plane, zgrupowaną według kolumnytailnum. - Użyj metody
.count()bez argumentów, aby policzyć, ile lotów wykonał każdy samolot. - Utwórz ramkę danych o nazwie
by_origin, zgrupowaną według kolumnyorigin. - Oblicz
.avg()kolumnyair_time, aby znaleźć średni czas trwania lotów z PDX i SEA.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()