2
SparkがすべてのRDD演算をメモリ内で計算する場合、RDDをメモリ内に保持するにはどのような違いがありますか?メモリ計算でSPARK
SparkがすべてのRDD演算をメモリ内で計算する場合、RDDをメモリ内に保持するにはどのような違いがありますか?メモリ計算でSPARK
RDDでは、後でRDDで複数のアクションまたはコールアクションを適用することができます。 RDDのスパークを持続させると、Actionの実行のために必要とされるすべてのステージがスキップされます。すべての変換を実行すると、すべての変換が実行され、countのような別のアクションをもう一度実行すると、今度はRDDの1つを保持します。それは、再実行し、すべての変換は、単に非持続し、実行する前に、すべてスキップしません。あなたはRDD2がすでにある気づくようrdd2.collectは、すべての変換の上に実行されますそれを呼ぶ時には、上記の例のように、たとえば
val list = sc.parallelize(List(1,23,5,4,3,2))
val rdd1 = list.map(_+1)
val rdd2 = rdd1.map(_+5).cache
rdd2.collect
rdd2.count
を一部を持続これでcountが呼び出されると、それ以上の変換は実行されず、永続化されたrddを使用して結果が計算されます。