Я ищу трюк, чтобы заставить Spark выполнять операцию сокращения локально между всеми задачами, выполняемыми рабочими ядрами, прежде чем делать это для всех задач. Действительно, кажется, что мой узел драйвера и сетевой переключатель перегружены из-за больших результатов задачи (= 400 МБ).Как заставить искру выполнять сокращение локально
val arg0 = sc.broadcast(fs.read(0, 4))
val arg1 = sc.broadcast(fs.read(1, 4))
val arg2 = fs.read(5, 4)
val index = info.sc.parallelize(0.toLong to 10000-1 by 1)
val mapres = index.map{ x => function(arg0.value, arg1.value, x, arg2) }
val output = mapres.reduce(Util.bitor)
Драйвер распределяет 1 раздел по ядру процессора, так что 8 разделов рабочего.
Вы хотите, чтобы reduceByKey делал локальное слияние перед агрегацией. –