Groeperen en aggregeren I
Een deel van de kracht van aggregaties zit in het toevoegen van groepen. PySpark heeft een hele klasse voor gegroepeerde DataFrames: pyspark.sql.GroupedData, die je in de vorige twee oefeningen hebt gezien.
Je hebt geleerd hoe je een gegroepeerde DataFrame maakt door de methode .groupBy() zonder argumenten aan te roepen op een DataFrame.
Nu zie je dat wanneer je de naam van een of meer kolommen in je DataFrame doorgeeft aan de methode .groupBy(), de aggregatiemethoden zich gedragen zoals bij een GROUP BY-instructie in een SQL-query!
Onthoud: er staat al een SparkSession met de naam spark klaar in je werkruimte, samen met de Spark DataFrame flights.
Deze oefening maakt deel uit van de cursus
Basis van PySpark
Oefeninstructies
- Maak een DataFrame
by_planedie gegroepeerd is op de kolomtailnum. - Gebruik de methode
.count()zonder argumenten om te tellen hoeveel vluchten elk vliegtuig heeft gemaakt. - Maak een DataFrame
by_origindie gegroepeerd is op de kolomorigin. - Bepaal de
.avg()van de kolomair_timeom de gemiddelde duur van vluchten vanuit PDX en SEA te vinden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()