Análisis posterior
Has moldeado este conjunto de datos en un formato significativamente diferente al que tenía antes, pero aún quedan algunas cosas por hacer. Tienes que preparar los datos de las columnas para utilizarlos en análisis posteriores y eliminar algunas columnas intermedias.
El contexto spark
está disponible y pyspark.sql.functions
tiene el alias F
. Los tipos de pyspark.sql.types
ya están importados. El DataFrame split_df
está como lo dejaste la última vez. Recuerda que puedes utilizar .printSchema()
en un Marco de datos en el área de la consola para ver los nombres y tipos de las columnas.
⚠️ Nota: Si ves un AttributeError
, actualiza los ejercicios y haz clic en Ejecutar solución sin hacer clic en Ejecutar código.
Este ejercicio forma parte del curso
Limpiar datos con PySpark
Instrucciones del ejercicio
- Crea una nueva función llamada
retriever
que tome dos argumentos, las columnas divididas (cols) y el número total de columnas (colcount). Esta función debe devolver una lista de las entradas que aún no se han definido como columnas (es decir, todo lo que hay después del elemento 4 de la lista). - Define la función como un Spark UDF, devolviendo una Matriz de cadenas.
- Crea la nueva columna
dog_list
utilizando el UDF y las columnas disponibles en el DataFrame. - Elimina las columnas
_c0
,colcount
, ysplit_cols
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')