Suppression des lignes commentées
Votre supérieur souhaite que vous effectuiez une analyse complexe sur un nouveau jeu de données. Ces données correspondent aux annotations du jeu de données ImageNet, mais portent spécifiquement sur les races de chiens et leur identification dans des images. Avant de pouvoir faire la moindre analyse, vous devez éliminer plusieurs éléments de données invalides ou erronées. Le schéma général du document est inconnu, donc vous préférez importer les lignes dans une seule colonne pour faciliter une analyse rapide.
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 aussi disponible.
Cette activité fait partie du cours
Nettoyer des données avec PySpark
Instructions de l’exercice
- Importez le fichier
annotations.csv.gzdans un DataFrame et effectuez un décompte des lignes. Indiquez le caractère de séparation |. - Interrogez les données pour obtenir le nombre de lignes commençant par #.
- Importez de nouveau le fichier dans un nouveau DataFrame, mais précisez le caractère de commentaire dans les options afin de supprimer les lignes commentées.
- Comptez le nouveau DataFrame et vérifiez que l'écart est celui attendu.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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" % (____, ____, ____))