Seskupování a agregace I
Jednou z věcí, díky které je agregace tak mocná, je možnost pracovat se skupinami. PySpark má pro seskupené datové rámce celou samostatnou třídu: pyspark.sql.GroupedData, se kterou ses setkal/a v posledních dvou cvičeních.
Naučil/a ses vytvořit seskupený DataFrame voláním metody .groupBy() na DataFrame bez argumentů.
Teď uvidíš, že když do metody .groupBy() předáš název jednoho nebo více sloupců, budou se agregační metody chovat stejně jako při použití příkazu GROUP BY v SQL dotazu!
Nezapomeň, že ve svém pracovním prostředí máš k dispozici SparkSession s názvem spark a také Spark DataFrame flights.
Toto cvičení je součástí kurzu
Foundations of PySpark
Pokyny k cvičení
- Vytvoř DataFrame s názvem
by_plane, který je seskupený podle sloupcetailnum. - Použij metodu
.count()bez argumentů k počítání letů každého letadla. - Vytvoř DataFrame s názvem
by_origin, který je seskupený podle sloupceorigin. - Pomocí metody
.avg()na sloupciair_timezjisti průměrnou dobu letu z PDX a SEA.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()