Pivot e Join
Saper esplodere e fare il pivot di un campo composto è utile, ma così ottieni un dataframe con solo quei valori pivotati. Per renderlo davvero utile, dovrai eseguire un join con il dataset originale! Dopo il join avremo molti valori NULL nelle nuove colonne: dato il contesto in cui sono state create, possiamo tranquillamente sostituirli con zero, perché o il nuovo elemento ha un attributo oppure no.
Questo esercizio fa parte del corso
Feature Engineering con PySpark
Istruzioni dell'esercizio
- Fai il pivot dei valori di
ex_garage_listraggruppando per l'id del recordNOcongroupBy(); usa il codice fornito per aggregareconstant_valin modo da ignorare i null e prendere il primo valore. - Esegui un left join tra
piv_dfedfusandoNOcome condizione di join. - Crea l'elenco delle colonne,
zfill_cols, da riempire con zero usando l'attributocolumnssupiv_df - Riempi con zeri le colonne del dataframe pivotato,
zfill_cols, usandofillna()con il parametrosubset.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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=____)