Кэширование

Очистка данных с помощью PySpark

Mike Metzger

Data Engineering Consultant

Что такое кэширование?

Кэширование в Spark:

  • Хранит DataFrame в памяти или на диске
  • Ускоряет последующие трансформации и действия
  • Снижает потребление ресурсов
Очистка данных с помощью PySpark

Недостатки кэширования

  • Очень большие наборы данных могут не поместиться в памяти
  • Кэширование на локальный диск не всегда ускоряет работу
  • Кэшированные объекты могут оказаться недоступны
Очистка данных с помощью PySpark

Советы по кэшированию

При разработке задач Spark:

  • Кэшируйте только при необходимости
  • Пробуйте кэшировать DataFrame в разных точках и оценивайте прирост производительности
  • Кэшируйте в память и быстрое хранилище SSD / NVMe
  • При необходимости кэшируйте на медленный локальный диск
  • Используйте промежуточные файлы!
  • Освобождайте кэш по завершении работы
Очистка данных с помощью PySpark

Реализация кэширования

Вызовите .cache() для DataFrame перед действием

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...