Pivotar y unir
Poder hacer explode y pivot de un campo compuesto está muy bien, pero eso te deja con un dataframe que solo contiene esos valores pivoteados. Para que sea realmente útil, tendrás que volver a unirlo con el conjunto de datos original. Después de unir los conjuntos de datos, tendremos muchos valores NULL en las nuevas columnas creadas; como conocemos el contexto de cómo se generaron, podemos rellenarlos con cero con total seguridad, ya que el nuevo registro o tiene un atributo o no lo tiene.
Este ejercicio forma parte del curso
Ingeniería de características con PySpark
Instrucciones del ejercicio
- Pivota los valores de
ex_garage_listagrupando por el id de registroNOcongroupBy()y usa el código proporcionado para agregarconstant_valpara ignorar nulos y tomar el primer valor. - Realiza un left join de
piv_dfcondfusandoNOcomo condición de unión. - Crea la lista de columnas,
zfill_cols, que vas a rellenar con ceros usando el atributocolumnsdepiv_df. - Rellena con ceros las columnas del dataframe pivoteado,
zfill_cols, usandofillna()consubset.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
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=____)