Групування та агрегація I
Сила агрегації значною мірою зростає завдяки групуванню. У PySpark є окремий клас для згрупованих датафреймів — pyspark.sql.GroupedData, з яким ви вже працювали в двох попередніх вправах.
Ви навчилися створювати згрупований DataFrame, викликаючи метод .groupBy() для датафрейму без аргументів.
Тепер ви побачите, що якщо передати назву одного або кількох стовпців вашого датафрейму в метод .groupBy(), методи агрегації працюватимуть так само, як і з оператором GROUP BY у SQL-запиті!
Пам'ятайте: SparkSession під назвою spark уже доступний у вашому робочому просторі, так само як і датафрейм Spark flights.
Ця вправа є частиною курсу
Основи PySpark
Інструкції до вправи
- Створіть DataFrame з назвою
by_plane, згрупований за стовпцемtailnum. - Використайте метод
.count()без аргументів, щоб підрахувати кількість рейсів для кожного літака. - Створіть DataFrame з назвою
by_origin, згрупований за стовпцемorigin. - Обчисліть
.avg()стовпцяair_time, щоб знайти середню тривалість рейсів з PDX і SEA.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()