Groeperen en aggregeren II
Naast de GroupedData-methoden die je al hebt gezien, is er ook de methode .agg().
Met deze methode kun je een aggregatie-expressie voor een kolom doorgeven die gebruikmaakt van een van de aggregatiefuncties uit de submodule pyspark.sql.functions.
Deze submodule bevat veel handige functies om bijvoorbeeld standaarddeviaties te berekenen. Alle aggregatiefuncties in deze submodule nemen de naam van een kolom in een GroupedData-tabel.
Onthoud: er staat al een SparkSession met de naam spark in je werkruimte, samen met de Spark DataFrame flights. De gegroepeerde DataFrames die je in de vorige oefening hebt gemaakt, staan ook in je werkruimte.
Deze oefening maakt deel uit van de cursus
Basis van PySpark
Oefeninstructies
- Importeer de submodule
pyspark.sql.functionsalsF. - Maak een
GroupedData-tabel met de naamby_month_destdie zowel op de kolommenmonthalsdestis gegroepeerd. Verwijs naar de twee kolommen door beide strings als losse argumenten door te geven. - Gebruik de methode
.avg()op de DataFrameby_month_destom de gemiddeldedep_delayper maand voor elke bestemming te krijgen. - Vind de standaarddeviatie van
dep_delaymet de methode.agg()in combinatie met de functieF.stddev().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Import pyspark.sql.functions as F
import ____ as F
# Group by month and dest
by_month_dest = flights.groupBy(____)
# Average departure delay by month and destination
by_month_dest.____.show()
# Standard deviation of departure delay
by_month_dest.agg(F.____(____)).show()