キャッシュ

PySpark でデータをクレンジングする

Mike Metzger

Data Engineering Consultant

キャッシュとは

Spark の「キャッシュ」:

  • DataFrame をメモリまたはディスクに保持
  • 後続の変換/アクションを高速化
  • リソース使用量を削減
PySpark でデータをクレンジングする

キャッシュの欠点

  • 非常に大きなデータはメモリに収まらないことがある
  • ローカルディスクのキャッシュは性能向上にならない場合がある
  • キャッシュ済みオブジェクトが利用できないことがある
PySpark でデータをクレンジングする

キャッシュのコツ

Spark 開発時のポイント:

  • 必要なときだけキャッシュする
  • さまざまな段階で DataFrame を試しにキャッシュし、性能向上を確認
  • メモリと高速 SSD/NVMe を優先
  • 必要なら遅いローカルディスクへ
  • 中間ファイルを活用
  • 終わったらキャッシュを解除
PySpark でデータをクレンジングする

キャッシュの実装

アクション前に DataFrame で .cache() を呼ぶ

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() を呼ぶ

voter_df.unpersist()
PySpark でデータをクレンジングする

練習しましょう!

PySpark でデータをクレンジングする

Preparing Video For Download...