我有一个简单、可能有点奇怪的问题:对于下面的代码,DAG被执行了两次,这是正常的,因为我调用了两次action。
如果我取消注释
这是否意味着Spark并不总是重新计算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?