Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een DataFrame by_plane die gegroepeerd is op de kolom tailnum.
  • Gebruik de methode .count() zonder argumenten om te tellen hoeveel vluchten elk vliegtuig heeft gemaakt.
  • Maak een DataFrame by_origin die gegroepeerd is op de kolom origin.
  • Bepaal de .avg() van de kolom air_time om 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()
Code bewerken en uitvoeren