1.デフォルトのRDD退避戦略はLRUです.RDDキャッシングにはメモリスペースが不足すると、いくつかのパーティションが退避されます。これらのパーティションが後で再び使用されると、それらはLineage情報によって再現され、再び。 メモリに収まらないキャッシュデータセットは、RDDのストレージレベルによって決定されるように、必要に応じてディスクにこぼれるか、必要に応じて再計算されます。
2. LRUとRDDのstorageLevelしかし、異なるstorageLevelを使用すると、メモリに収まらない場合でもデータをキャッシュすることができます。また、異なるstorageLevel間でも、MEMORY_AND_DISK_SERはGCを削減し、高価な再計算を避けることができます。
3.すべてのエグゼキュータメモリまたはクラスタサイズの合計より大きいデータでスパークを実行している場合、問題はありません。多くの操作でデータがストリームされ、メモリが使用されますほとんどの場合、ジョブが失敗した場合や個々のパーティションが大きすぎてメモリに収まらない場合、通常の方法ではより多くのパーティションに再パーティション分割するので、それぞれのパーティションが小さくなります。うまくいけば、それは収まるでしょう。