Pivot i złączenie
Możliwość rozwinięcia i przestawienia (pivot) złożonego pola to świetna rzecz, ale w rezultacie otrzymujesz ramkę danych zawierającą tylko przestawione wartości. Żeby naprawdę wykorzystać jej potencjał, musisz połączyć ją z oryginalnym zbiorem danych! Po złączeniu zbiorów wiele nowo utworzonych kolumn będzie miało wartości NULL – jednak znając kontekst ich powstania, możemy je bezpiecznie zastąpić zerami: dana cecha albo istnieje, albo nie.
To ćwiczenie jest częścią kursu
Inżynieria cech z PySpark
Instrukcje do ćwiczenia
- Przestaw (pivot) wartości
ex_garage_list, grupując po identyfikatorze rekorduNOza pomocągroupBy()– użyj dostarczonego kodu, aby zagregowaćconstant_val, pomijając wartości null i przyjmując pierwszą wartość. - Wykonaj lewe złączenie
piv_dfzdf, używającNOjako warunku złączenia. - Utwórz listę kolumn
zfill_colsdo wypełnienia zerami, korzystając z atrybutucolumnsnapiv_df. - Wypełnij zerami kolumny przestawionej ramki danych,
zfill_cols, używającfillna()z parametremsubset.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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=____)