私はsparkのcassandraから読み込まれたデータセットを持っています。このデータセットをロードした後、私はcassandraからいくつかの項目を削除しますが、私のデータセットを次の計算のための最初のものにします。私はそれを解決するためにpersist(DISK_ONLY)
を使用しましたが、それは最善の努力のようです。 再計算を避けるためにsparkを強制するにはどうすればよいですか?sparkを強制してデータセットの再計算を回避する方法はありますか?
例:
val dataset:Dataset[Int] = ??? // something from cassandra
dataset.persist(StorageLevel.DISK_ONLY) // it's best effort
dataset.count // = 2n
dataset.persist(_ % 2 == 0).remove // remove from cassandra
data.count // = n => I need orginal dataset here
は、最適化の方法です。それらに保証はありません。 –
私はどこにも言及していないことに同意します.DAGは実行からそのステージをスキップします。しかし、** RDDは、どんな段階でもrddが持続された場合に呼び出されるアクションが繰り返されるたびに、再計算されません。 – mrsrinivas