Агрегування
Усі типові методи агрегування, як-от .min(), .max() і .count(), є методами GroupedData. Їх створюють викликом методу датафрейму .groupBy(). Ви детально розберетеся з цим у кількох наступних вправах. Поки що, щоб скористатися цими функціями, достатньо викликати цей метод для вашого датафрейму. Наприклад, щоб знайти мінімальне значення стовпчика col у датафреймі df, ви можете виконати
df.groupBy().min("col").show()
Це створює об'єкт GroupedData (тож ви можете використати метод .min()), потім знаходить мінімальне значення у col і повертає його як датафрейм.
Тепер ви готові виконати власне агрегування!
SparkSession під назвою spark уже є у вашому робочому середовищі, так само як і датафрейм Spark flights.
Ця вправа є частиною курсу
Основи PySpark
Інструкції до вправи
- Знайдіть довжину найкоротшого (за відстанню) рейсу, що вилетів з PDX, спершу застосувавши
.filter()і метод.min(). Виконайте фільтрування, посилаючись безпосередньо на стовпчик, а не передаючи SQL-рядок. - Знайдіть тривалість найдовшого (за часом) рейсу, що вилетів із SEA, відфільтрувавши дані за допомогою
filter()і застосувавши метод.max(). Виконайте фільтрування, посилаючись безпосередньо на стовпчик, а не передаючи SQL-рядок.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Find the shortest flight from PDX in terms of distance
flights.filter(____.____ == ____).groupBy().____(____).show()
# Find the longest flight from SEA in terms of air time
flights.filter(____).groupBy().____.show()