Pivot & Join
Conseguir explodir e pivotar um campo composto é ótimo, mas você fica com um dataframe apenas com esses valores pivotados. Para ser realmente útil, você vai precisar fazer o join com o conjunto de dados original! Depois de fazer o join, teremos muitos valores NULL nas colunas recém-criadas; como sabemos o contexto de como elas foram geradas, podemos preencher com zero com segurança, já que o novo registro ou tem um atributo ou não tem.
Este exercício faz parte do curso
Feature Engineering com PySpark
Instruções do exercício
- Pivotar os valores de
ex_garage_listagrupando pelo id do registroNOcomgroupBy(); use o código fornecido para agregarconstant_valpara ignorar nulos e pegar o primeiro valor. - Fazer um left join de
piv_dfcomdfusandoNOcomo condição de junção. - Criar a lista de colunas,
zfill_cols, a serem preenchidas com zero usando o atributocolumnsdepiv_df - Preencher com zero as colunas do dataframe pivotado,
zfill_cols, usandofillna()com umsubset.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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=____)