CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Importez le fichier annotations.csv.gz dans 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" % (____, ____, ____))
Modifier et exécuter le code