Techniques de traitement des données

Nettoyer des données avec PySpark

Mike Metzger

Data Engineering Consultant

Que cherche-t-on à analyser ?

  • Données incorrectes
    • Lignes vides
    • Lignes commentées
    • En-têtes
  • Structures imbriquées
    • Délimiteurs multiples
  • Données non régulières
    • Nombre de colonnes variable par ligne
  • Ciblé sur les données CSV
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Nettoyer des données avec PySpark

Annotations Stanford ImageNet

  • Identifie les races de chiens dans les images
  • Donne la liste de tous les chiens détectés dans l'image
  • Autres métadonnées (dossier de base, taille d'image, etc.)

Exemples de lignes :

02111277    n02111277_3206    500    375    Newfoundland,110,73,416,298
02108422    n02108422_4375    500    375    bull_mastiff,101,90,214,356 \
 bull_mastiff,282,74,416,370
Nettoyer des données avec PySpark

Retirer lignes vides, en-têtes et commentaires

Le parseur CSV de Spark :

  • Supprime automatiquement les lignes vides
  • Peut ignorer les commentaires avec un argument optionnel
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Gère les champs d'en-tête
    • Définis via un argument
    • Ignorés si un schéma est défini
df1 = spark.read.csv('datafile.csv.gz', header='True')
Nettoyer des données avec PySpark

Création automatique des colonnes

Spark va :

  • Créer automatiquement les colonnes d'un DataFrame selon l'argument sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Utiliser par défaut ,
  • Réussir l'analyse même si sep n'est pas dans la chaîne
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Stocker les données dans une colonne nommée par défaut _c0
  • Vous permettre de bien gérer les séparateurs imbriqués
Nettoyer des données avec PySpark

Passons à la pratique !

Nettoyer des données avec PySpark

Preparing Video For Download...