У вас есть простой, может быть, странный вопрос: для следующего кода DAG выполняется дважды, что и ожидалось, потому что я вызываю действие два раза:
val input = sc.parallelize(List(1,2,3,4))
val result = input.map(x => {
println("!!! Input Map !!!")
errorLines.add(1)
(x,1)
})
//.reduceByKey(_+_)
println(result.count())
println(result.collect())
Если я раскомментирую reduceByKey
строку - DAG будет выполнен только один раз, хотя reduceByKey
это преобразование и я вызываю действия два раза.
Означает ли это, что Spark не всегда пересчитывает DAG?