НачатьНачать бесплатно

Группировка и агрегирование 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()
Редактировать и запускать код