我很好奇Spark如何处理计算阶段。
也许我可以举几个例子:
val df1 = stage1(df)
val df2 = stage2(df1)
df2.show(10)
val df3 = stage3(df2)
Spark如何在此处处理show
?它是否两次计算stage1
和stage2
,一次用于演出,一次用于stage3
。这将意味着show()减慢了进程
使用过程可以控制哪些持久化和哪些不能持久化吗?
谢谢!
答案 0 :(得分:0)
显示是一个动作。假设在第3阶段之后有一个Action,则将重新计算。
如果没有演出,那就没有。
在您的示例中,使用df2进行缓存将意味着无需重新计算。