Pivot і Join
Уміння «розгортати» (explode) та робити «зведення» (pivot) складеного поля — це чудово, але після цього ви отримуєте датафрейм лише з тими зведеними значеннями. Щоб це було справді корисно, потрібно знову приєднати його до початкового набору даних. Після з'єднання з'явиться багато значень NULL у щойно створених стовпцях. Оскільки ми знаємо контекст їх створення, можемо безпечно заповнити їх нулями: атрибут або є, або його немає.
Ця вправа є частиною курсу
Опрацювання ознак у PySpark
Інструкції до вправи
- Зробіть pivot значень
ex_garage_list, згрупувавши за ідентифікатором записуNOза допомогоюgroupBy(). Використайте наданий код, щоб агрегуватиconstant_val, ігноруючи null, та взяти перше значення. - Виконайте ліве з'єднання
piv_dfзdf, використовуючиNOяк умову з'єднання. - Створіть список стовпців
zfill_colsдля заповнення нулями, використавши атрибутcolumnsуpiv_df. - Заповніть нулями стовпці зведеного датафрейму
zfill_cols, застосувавшиfillna()із параметромsubset.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
from pyspark.sql.functions import coalesce, first
# Pivot
piv_df = ex_df.____(____).____(____).agg(coalesce(first(____)))
# Join the dataframes together and fill null
joined_df = ____.join(____, on='NO', how=____)
# Columns to zero fill
zfill_cols = ____.____
# Zero fill the pivoted values
zfilled_df = joined_df.____(0, subset=____)