Supprimer les lignes commentées
Votre responsable souhaite que vous effectuiez une analyse complexe sur un nouveau jeu de données. Il s’agit d’annotations pour le jeu de données ImageNet, en se concentrant sur les races de chiens et leur identification dans les images. Avant toute analyse, vous devez nettoyer plusieurs éléments de données invalides ou incorrectes. Le schéma général du document est inconnu ; vous préférez donc importer les lignes dans une seule colonne pour faciliter une première exploration.
Pour commencer, vous devez supprimer toutes les lignes commentées du jeu de données.
Le contexte spark et le fichier CSV de base (annotations.csv.gz) sont à votre disposition. La fonction col est également disponible.
Cet exercice fait partie du cours
Nettoyer des données avec PySpark
Instructions
- Importez le fichier
annotations.csv.gzdans un DataFrame et effectuez un comptage des lignes. Indiquez le caractère de séparation |. - Interrogez les données pour connaître le nombre de lignes commençant par #.
- Importez de nouveau le fichier dans un nouveau DataFrame, mais spécifiez le caractère de commentaire dans les options afin de supprimer les lignes commentées.
- Comptez le nouveau DataFrame et vérifiez que la différence est conforme aux attentes.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))