Améliorer les performances d'import

Nettoyer des données avec PySpark

Mike Metzger

Data Engineering Consultant

Clusters Spark

Les clusters Spark se composent de deux types de processus

  • Processus driver
  • Processus workers
Nettoyer des données avec PySpark

Performances d'import

Paramètres importants :

  • Nombre d'objets (fichiers, emplacements réseau, etc.)
    • Mieux vaut plusieurs petits objets que de gros
    • Import possible via wildcard
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Taille générale des objets
    • Spark est plus performant si les objets ont une taille semblable
Nettoyer des données avec PySpark

Schémas

Un schéma bien défini améliore nettement les performances d'import

  • Évite de lire les données plusieurs fois
  • Valide les données à l'import
Nettoyer des données avec PySpark

Comment fractionner des objets

  • Utilisez des utilitaires/scripts OS (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Utilisez des scripts personnalisés
  • Écrivez au format Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Nettoyer des données avec PySpark

Passons à la pratique !

Nettoyer des données avec PySpark

Preparing Video For Download...