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
<cours>Nettoyer des données avec PySpark</cours>Instructions de l’exercice
- 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 ce code d’exemple.
# 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.____(____('____')).____(____)