Bộ nhớ đệm

Làm sạch dữ liệu với PySpark

Mike Metzger

Data Engineering Consultant

Caching là gì?

Caching trong Spark:

  • Lưu DataFrame trong RAM hoặc trên đĩa
  • Tăng tốc các phép biến đổi/hành động về sau
  • Giảm dùng tài nguyên
Làm sạch dữ liệu với PySpark

Nhược điểm của caching

  • Tập dữ liệu rất lớn có thể không vừa RAM
  • Caching trên đĩa cục bộ có thể không cải thiện hiệu năng
  • Đối tượng đã cache có thể không sẵn có
Làm sạch dữ liệu với PySpark

Mẹo caching

Khi phát triển tác vụ Spark:

  • Chỉ cache khi cần
  • Thử cache DataFrame tại nhiều điểm và đo xem hiệu năng có cải thiện không
  • Cache trong RAM và SSD/NVMe nhanh
  • Cache lên đĩa cục bộ chậm nếu cần
  • Dùng file trung gian!
  • Dừng cache khi xong việc
Làm sạch dữ liệu với PySpark

Triển khai caching

Gọi .cache() trên DataFrame trước 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()
Làm sạch dữ liệu với PySpark

Thao tác cache khác

Dùng .is_cached để kiểm tra trạng thái cache

print(voter_df.is_cached)
True

Gọi .unpersist() khi dùng xong DataFrame

voter_df.unpersist()
Làm sạch dữ liệu với PySpark

Ayo berlatih!

Làm sạch dữ liệu với PySpark

Preparing Video For Download...