В примере SparkPi, который поставляется с дистрибутивом Spark, есть reduce
на RDD, выполняемый параллельно (каждый срез вычисляет его общее количество) или нет?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(_ + _)
Прохладный! Поэтому не нужно быть «умным» и отправлять закрытие для вычисления под-итогов для каждого исполнителя вместо использования '' 'reduce'''. Мне это нравится, просто нужно доверять Спарку :-) – Frank