Apache spark 当Spark发现一个动作时,是否会运行每一行代码直到该动作完成,还是只运行与该动作相关的转换?

Apache spark 当Spark发现一个动作时,是否会运行每一行代码直到该动作完成,还是只运行与该动作相关的转换?,apache-spark,Apache Spark,让 第1行: x: RDD[Int] = {1,2,3,4} y: RDD[Int] = {4,5,6,7} 第2行: x = x.map(x => x+1) 第3行: y = y.map(y => y+1) spark将计算所有行或仅计算第1行和第3行。在这种情况下,它将仅执行第1行和第3行。它没有执行第2行的原因是,您没有对RDDy调用任何操作,您只是在y上建立DAG,在这种情况下,它将只执行第1行和第3行。它没有执行第2行的原因是,您没有对RDDy调用任何操作,您只是在

第1行:

x: RDD[Int] = {1,2,3,4}

y: RDD[Int] = {4,5,6,7}
第2行:

x = x.map(x => x+1)
第3行:

y = y.map(y => y+1)

spark将计算所有行或仅计算第1行和第3行。

在这种情况下,它将仅执行第1行和第3行。它没有执行第2行的原因是,您没有对RDD
y
调用任何操作,您只是在
y
上建立DAG,在这种情况下,它将只执行第1行和第3行。它没有执行第2行的原因是,您没有对RDD
y
调用任何操作,您只是在
y
上构建DAG

x.collect().foreach(println)