Кешування

Очищення даних у PySpark

Mike Metzger

Data Engineering Consultant

Що таке кешування?

Кешування у Spark:

  • Зберігає DataFrame у пам'яті або на диску
  • Прискорює подальші перетворення й дії
  • Зменшує використання ресурсів
Очищення даних у PySpark

Недоліки кешування

  • Дуже великі набори даних можуть не вміститися в пам'ять
  • Кешування на локальному диску може не дати приросту швидкодії
  • Закешовані об'єкти можуть бути недоступні
Очищення даних у PySpark

Поради щодо кешування

Під час розробки завдань Spark:

  • Кешуйте лише за потреби
  • Спробуйте кешувати DataFrame у різних місцях і перевірте, чи є приріст швидкодії
  • Кешуйте в пам'яті та на швидких SSD / NVMe
  • За потреби кешуйте на повільний локальний диск
  • Використовуйте проміжні файли!
  • Припиняйте кешування після завершення
Очищення даних у PySpark

Реалізація кешування

Викличте .cache() для DataFrame перед дією (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()
Очищення даних у PySpark

Додаткові операції з кешем

Перевіряйте .is_cached, щоб дізнатися стан кешу

print(voter_df.is_cached)
True

Викличте .unpersist() після завершення роботи з DataFrame

voter_df.unpersist()
Очищення даних у PySpark

Давайте потренуємось!

Очищення даних у PySpark

Preparing Video For Download...