Spark 是否并行执行 UnionAll?

Does Spark do UnionAll in parallel?

我有 10 个 DataFrame 具有相同的模式,我想将它们合并为一个 DataFrame。每个 DataFrame 都是使用 sqlContext.sql("select ... from ...").cahce 构造的,这意味着从技术上讲,DataFrame 在使用它们之前不会真正计算出来。

所以,如果我 运行:

val df_final = df1.unionAll(df2).unionAll(df3).unionAll(df4) ...

Spark 会并行计算所有这些 DataFrame 还是一个一个地计算(由于点运算符)?

而且,当我们在这里时 - 有没有比我上面列出的更优雅的方法来在多个 DataFrame 上执行 unionAll

unionAll 懒惰 。您问题中的示例行不会触发任何同步或异步计算。

总的来说Spark是一个分布式计算系统。每个操作本身都由一堆并行处理的任务组成。所以一般来说你不必担心两个操作是否可以运行并行。反正集群资源会得到很好的利用。