私はApache Sparkを学び、SparkでRDDのキャッシュと永続性に関連する概念を解明しようとしています。デフォルトのpersist()は、シリアル化されていないオブジェクトとしてJVMヒープにデータを格納するのはなぜですか?
だから、本の中で持続性のドキュメントの「学習スパーク」によると:RDD複数回の計算避けるために
、我々はデータを永続化するためにスパークを求めることができます。 SparkにRDDを永続化するように依頼すると、RDDを計算するノードはパーティションを保存します。 スパークは、私たちの目標が何であるかに基づいて、多くのレベルの永続性を選択できます。
ScalaとJavaでは、デフォルトのpersist()は、 は、シリアル化されていないオブジェクトとしてJVMヒープにデータを格納します。 Pythonでは、永続ストアのデータを常に にシリアライズするので、デフォルトでは節約された オブジェクトとしてJVMヒープに格納されます。ディスクまたはオフ・ヒープ・ストレージにデータを書き出す場合、そのデータも常に がシリアライズされます。
しかし、なぜis-- デフォルトは(存続) シリアライズオブジェクトとしてJVMのヒープ内のデータを格納します。