記事ディレクトリ
以下に 3 つの機能の詳細な説明とそれらの比較を示します。
-
cache()
cache()
特別な形式のyespersist()
。cache() メソッドを使用します。デフォルトのストレージ レベルは ですMEMORY_ONLY
。これは、RDD のデータがノードのメモリに保存されることを意味します。メモリ領域がすべてのデータを保持するのに十分でない場合、キャッシュに保存できなかったデータの一部は、ディスクに保存されるのではなく、必要に応じて再計算されます。このストレージ レベルではMEMORY_AND_DISK
、メモリ スペースがすべてのデータを保持するのに十分でない場合、データのオーバーフロー部分がディスクに保存されます。これは、persist(StorageLevel.MEMORY_AND_DISK)
によって実現できます。- RDD のデータが計算されると、後続の操作ですぐにアクセスできるように、データはノード メモリに保存されます。
- RDD の依存関係は切断されません。
-
persist(storageLevel: StorageLevel)
persist()
ユーザーがさまざまなストレージ レベル (MEMORY_ONLY
、MEMORY_AND_DISK
、MEMORY_ONLY_SER
などを含む) を選択できるようにします。cache()
クラスと一緒に