Nombre par image
Votre prochaine étape pour construire un pipeline de données pour cet ensemble consiste à créer quelques colonnes orientées analyse. On vous demande de calculer le nombre de chiens repérés dans chaque image à partir de votre colonne dog_list créée précédemment. Vous avez également créé le DogType, qui permettra une meilleure analyse des données dans certaines colonnes.
Le joined_df est disponible tel que vous l’avez défini en dernier, et le DogType de type StructType est défini. pyspark.sql.functions est disponible sous l’alias F.
Cet exercice fait partie du cours
Nettoyer des données avec PySpark
Instructions
- Créez une fonction Python pour découper chaque entrée de
dog_listen ses parties correspondantes. Assurez-vous de convertir les chaînes dans les types appropriés, sinonDogTypene sera pas correctement interprété. - Créez une UDF à partir de la fonction ci-dessus.
- Utilisez la UDF pour créer une nouvelle colonne appelée
dogs. - Affichez le nombre de chiens dans la nouvelle colonne pour les 10 premières lignes.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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.____(____('____')).____(____)