2016-12-10 16 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個切片上運行。因此,您的收藏將分成兩部分。然後Spark將並行執行對每個分區的map轉換和reduce操作。最後,Spark將把單個結果合併到最終值中。

如果使用默認配置執行示例,則可以在控制檯輸出中觀察2個任務。

+0

酷!因此,不需要「聰明」併發送閉包來計算每個執行程序的小計,而不是使用「reduce」。我喜歡它,只需要相信Spark :-) – Frank

相關問題