Группировка и агрегирование I
Одно из главных преимуществ агрегирования — возможность работать с группами данных. В PySpark есть специальный класс для сгруппированных DataFrame: pyspark.sql.GroupedData, с которым вы познакомились в двух предыдущих упражнениях.
Вы уже умеете создавать сгруппированный DataFrame, вызывая метод .groupBy() без аргументов.
Теперь вы увидите, что если передать в .groupBy() имя одного или нескольких столбцов, методы агрегирования будут работать так же, как оператор GROUP BY в SQL-запросе!
Напомним: в вашем рабочем пространстве уже доступны сессия SparkSession с именем spark и Spark DataFrame 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()