Regroupement et agrégation I
La puissance de l'agrégation repose en partie sur l'ajout de groupes. PySpark a une classe entière consacrée aux cadres de données groupées : pyspark.sql.GroupedData
, que vous avez vu dans les deux derniers exercices.
Vous avez appris à créer un DataFrame groupé en appelant la méthode .groupBy()
sur un DataFrame sans arguments.
Vous verrez maintenant que lorsque vous transmettez le nom d'une ou plusieurs colonnes de votre DataFrame à la méthode .groupBy()
, les méthodes d'agrégation se comportent comme lorsque vous utilisez une instruction GROUP BY
dans une requête SQL!
Rappelez-vous qu'un site SparkSession
appelé spark
se trouve déjà dans votre espace de travail, ainsi que le DataFrame Spark flights
.
Cet exercice fait partie du cours
Introduction à PySpark
Instructions
- Créez un DataFrame appelé
by_plane
qui est groupé par la colonnetailnum
. - Utilisez la méthode
.count()
sans arguments pour compter le nombre de vols effectués par chaque avion. - Créez un DataFrame appelé
by_origin
qui est groupé par la colonneorigin
. - Trouvez le
.avg()
de la colonneair_time
pour trouver la durée moyenne des vols à partir de PDX et SEA.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()