Por número de imágenes
Tu siguiente tarea en la construcción de una canalización de datos para este conjunto de datos es crear unas cuantas columnas orientadas al análisis. Se te ha pedido que calcules el número de perros encontrados en cada imagen basándote en tu columna dog_list
creada anteriormente. También has creado la página DogType
, que permitirá analizar mejor los datos de algunas de las columnas de datos.
El joined_df
está disponible tal y como lo definiste la última vez, y el StructType DogType
está definido. pyspark.sql.functions
está disponible bajo el alias F
.
Este ejercicio forma parte del curso
Limpiar datos con PySpark
Instrucciones de ejercicio
- Crea una función Python para dividir cada entrada en
dog_list
en sus partes correspondientes. Asegúrate de convertir las cadenas en los tipos apropiados o DogType no se analizará correctamente. - Crea un UDF utilizando la función anterior.
- Utiliza UDF para crear una nueva columna llamada
dogs
. - Muestra el número de perros en la nueva columna para las 10 primeras filas.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Create a function to return the number and type of dogs as a tuple
def dogParse(doglist):
dogs = []
for dog in doglist:
(breed, start_x, start_y, end_x, end_y) = dog.____('____')
dogs.append((____, int(____), ____, ____, ____))
return dogs
# Create a UDF
udfDogParse = ____(____, ArrayType(____))
# Use the UDF to list of dogs
joined_df = joined_df.____('____', ____('____'))
# Show the number of dogs in the first 10 rows
joined_df.____(____('____')).____(____)