Nombre par image
Votre prochaine tâche pour bâtir un pipeline de données pour cet ensemble de données consiste à créer quelques colonnes axées sur l'analyse. On vous a demandé de calculer le nombre de chiens trouvés dans chaque image à partir de votre colonne dog_list créée plus tôt. Vous avez aussi créé le DogType, ce 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 accessible sous l'alias F.
Cette activité fait partie du cours
Nettoyer des données avec PySpark
Instructions de l’exercice
- Créez une fonction Python pour diviser chaque entrée de
dog_listen ses parties appropriées. Assurez-vous de convertir les chaînes de caractères aux types appropriés, sinon le DogType ne s'analysera pas correctement. - 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.____(____('____')).____(____)