2016-12-10 3 views
0

Sparkのディストリビューションに付属するSparkPiの例では、RDD上にreduceがあります(各スライスは合計を計算します)。Spark SparkPiの例

val count: Int = spark.sparkContext.parallelize(1 until n, slices).map { i => 
    val x = random * 2 - 1 
    val y = random * 2 - 1 
    if (x*x + y*y < 1) 1 else 0 
}.reduce(_ + _) 

答えて

2

はい、そうです。

デフォルトでは、この例は2つのスライスで動作します。その結果、あなたのコレクションは2つの部分に分割されます。その後、Sparkはmap変換と各パーティション上のreduceアクションを並列に実行します。最後に、Sparkは個々の結果を最終値にマージします。

デフォルトの設定を使用してこの例を実行すると、コンソール出力に2つのタスクが表示されます。

+0

Cool!だから、「スマート」にして、 '' 'reduce''を使うのではなく、各エグゼキュータの小計を計算するためにクロージャを送る必要はありません。私はそれが好きです、ただスパークを信用する必要があります:-) – Frank

関連する問題