Mise en cache

Nettoyer des données avec PySpark

Mike Metzger

Data Engineering Consultant

Qu'est-ce que la mise en cache ?

La mise en cache dans Spark :

  • Stocke les DataFrames en mémoire ou sur disque
  • Accélère les transformations / actions suivantes
  • Réduit l'usage des ressources
Nettoyer des données avec PySpark

Limites de la mise en cache

  • Les très grands jeux de données peuvent ne pas tenir en mémoire
  • La mise en cache sur disque local n'améliore pas toujours les performances
  • Les objets en cache peuvent ne pas être disponibles
Nettoyer des données avec PySpark

Conseils de mise en cache

Lors du développement de tâches Spark :

  • Mettez en cache uniquement si nécessaire
  • Testez la mise en cache de DataFrames à divers endroits et vérifiez le gain de performance
  • Mettez en cache en mémoire et sur SSD / NVMe rapides
  • Mettez en cache sur disque local lent si besoin
  • Utilisez des fichiers intermédiaires !
  • Arrêtez la mise en cache une fois terminé
Nettoyer des données avec PySpark

Mettre en œuvre la mise en cache

Appelez .cache() sur le DataFrame avant l'action

voter_df = spark.read.csv('voter_data.txt.gz')
voter_df.cache().count()
voter_df = voter_df.withColumn('ID', monotonically_increasing_id())
voter_df = voter_df.cache()
voter_df.show()
Nettoyer des données avec PySpark

Autres opérations de cache

Vérifiez .is_cached pour connaître l'état du cache

print(voter_df.is_cached)
True

Appelez .unpersist() une fois le DataFrame utilisé

voter_df.unpersist()
Nettoyer des données avec PySpark

Passons à la pratique !

Nettoyer des données avec PySpark

Preparing Video For Download...