Buforowanie

Czyszczenie danych w PySpark

Mike Metzger

Data Engineering Consultant

Czym jest buforowanie?

Buforowanie w Spark:

  • Przechowuje DataFrames w pamięci lub na dysku
  • Przyspiesza późniejsze transformacje / akcje
  • Zmniejsza zużycie zasobów
Czyszczenie danych w PySpark

Wady buforowania

  • Bardzo duże zbiory danych mogą nie zmieścić się w pamięci
  • Buforowanie na dysku lokalnym może nie poprawiać wydajności
  • Buforowane obiekty mogą być niedostępne
Czyszczenie danych w PySpark

Wskazówki dotyczące buforowania

Podczas tworzenia zadań Spark:

  • Buforuj tylko wtedy, gdy jest to konieczne
  • Testuj buforowanie DataFrame w różnych punktach i sprawdzaj wpływ na wydajność
  • Buforuj w pamięci i szybkim magazynie SSD / NVMe
  • Buforuj na wolnym dysku lokalnym w razie potrzeby
  • Używaj plików pośrednich!
  • Zatrzymaj buforowanie obiektów po zakończeniu pracy
Czyszczenie danych w PySpark

Implementacja buforowania

Wywołaj .cache() na DataFrame przed akcją

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()
Czyszczenie danych w PySpark

Więcej operacji buforowania

Sprawdź .is_cached, aby określić stan bufora

print(voter_df.is_cached)
True

Wywołaj .unpersist() po zakończeniu pracy z DataFrame

voter_df.unpersist()
Czyszczenie danych w PySpark

Czas na ćwiczenia!

Czyszczenie danych w PySpark

Preparing Video For Download...