Techniques de gestion des données

Nettoyer des données avec PySpark

Mike Metzger

Data Engineering Consultant

Que cherchons-nous à 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
  • Focus 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
  • Fournit la liste de tous les chiens détectés dans l'image
  • Autres métadonnées (dossier de base, taille d'image, etc.)

Lignes d'exemple :

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

Suppression des lignes vides, en-têtes et commentaires

Le parseur CSV de Spark :

  • Supprime automatiquement les lignes vides
  • Peut ignorer les commentaires via 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 de colonnes

Spark va :

  • Créer automatiquement des colonnes dans 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 présent dans la chaîne
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Stocker les données dans une colonne nommée _c0 par défaut
  • Vous permettre de gérer correctement les séparateurs imbriqués
Nettoyer des données avec PySpark

Passons à la pratique !

Nettoyer des données avec PySpark

Preparing Video For Download...