Spark是否并行处理UnionAll?

时间:2016-08-12 13:14:40

标签: scala apache-spark parallel-processing spark-dataframe

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

所以,如果我跑:

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

Spark会并行或逐个计算所有这些DataFrame(由于点运算符)?

而且,虽然我们在这里 - 是否有更优雅的方式在几个unionAll上预先形成DataFrame而不是我上面列出的那个?

1 个答案:

答案 0 :(得分:3)

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

通常,Spark是一个分布式计算系统。每个操作本身都由一系列并行处理的任务组成。因此,通常您不必担心两个操作是否可以并行运行。无论如何,集群资源将得到充分利用。