放映后Spark是否重新计算数据帧

时间:2019-07-18 18:50:52

标签: apache-spark

我很好奇Spark如何处理计算阶段。

也许我可以举几个例子:

val df1 = stage1(df)
val df2 = stage2(df1)
df2.show(10)
val df3 = stage3(df2)

Spark如何在此处处理show?它是否两次计算stage1stage2,一次用于演出,一次用于stage3。这将意味着show()减慢了进程

使用过程可以控制哪些持久化和哪些不能持久化吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

显示是一个动作。假设在第3阶段之后有一个Action,则将重新计算。

如果没有演出,那就没有。

在您的示例中,使用df2进行缓存将意味着无需重新计算。