Створення стовпців
У цьому розділі ви навчитеся використовувати методи класу DataFrame у Spark для виконання типових операцій з даними.
Розгляньмо операції над стовпцями. У Spark це можна зробити методом .withColumn(), який приймає два аргументи. Перший — рядок із назвою нового стовпця, другий — сам новий стовпець.
Новий стовпець має бути об'єктом класу Column. Створити його просто: дістаньте стовпець із вашого DataFrame за допомогою df.colName.
Оновлення Spark DataFrame дещо відрізняється від роботи в pandas, адже Spark DataFrame — незмінний (immutable). Тобто його не можна змінити, і стовпці не оновлюються «на місці».
Отже, усі ці методи повертають новий DataFrame. Щоб перезаписати початковий DataFrame, потрібно переназначити повернений DataFrame, наприклад так:
df = df.withColumn("newCol", df.oldCol + 1)
Цей код створює DataFrame з тими самими стовпцями, що й df, плюс новий стовпець newCol, у якому кожне значення дорівнює відповідному значенню з oldCol, збільшеному на один.
Щоб перезаписати наявний стовпець, просто передайте його назву як перший аргумент!
Пам'ятайте, у вашому середовищі вже є SparkSession з назвою spark.
Ця вправа є частиною курсу
Основи PySpark
Інструкції до вправи
- Скористайтеся методом
spark.table()з аргументом"flights", щоб створити DataFrame зі значеннями таблиціflightsу.catalog. Збережіть його якflights. - Показуйте початок
flightsза допомогоюflights.show(). Перевірте результат: у стовпціair_timeміститься тривалість перельоту в хвилинах. - Оновіть
flights, додавши новий стовпецьduration_hrs, у якому буде тривалість кожного перельоту в годинах (потрібно поділитиair_timeна кількість хвилин у годині).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)