以下に、Sparkfold
アクションのScalaの例を示します。
val rdd1 = sc.parallelize(List(1,2,3,4,5), 3)
rdd1.fold(5)(_ + _)
これにより、出力が生成されます35
。誰かがこの出力がどのように計算されるかを詳細に説明できますか?
ここのScaladocsから引用(私の強調):
@param zeroValue
op
演算子の各パーティションの累積結果の初期値、および演算子の異なるパーティションからの結合結果の初期値op
-これは通常、ニュートラル要素になります(Nil
リストの連結や0
合計など)。
zeroValue
あなたの場合、これは4回追加されます(パーティションごとに1回、さらにパーティションの結果を組み合わせる場合に1回)。したがって、結果は次のようになります。
(5 + 1) + (5 + 2 + 3) + (5 + 4 + 5) + 5 // (extra one for combining results)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加