Apache spark 组合(不是sql连接)2个spark数据帧

Apache spark 组合(不是sql连接)2个spark数据帧,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有两个较大的数据帧,这里是示例 首先 第二 firstnames|lastnames|age mary|gu|24 jane|lip|36 ... 我希望将这两个数据帧合并为一个,如下所示: firstnames|lastnames|age tom|form|24 bob|lip|36 mary|gu|24 jane|lip|36 ... 现在我可以把它们都写出来,然后一起读,但这是一个巨大的浪费。这是一个简单的例子,如图所示:union如果两个数据帧的结构相同,那么它就是直接的union

我有两个较大的数据帧,这里是示例

首先

第二

firstnames|lastnames|age
mary|gu|24
jane|lip|36
...
我希望将这两个数据帧合并为一个,如下所示:

firstnames|lastnames|age
tom|form|24
bob|lip|36
mary|gu|24
jane|lip|36
...

现在我可以把它们都写出来,然后一起读,但这是一个巨大的浪费。

这是一个简单的例子,如图所示:union

如果两个数据帧的结构相同,那么它就是直接的union

若任何数据框有任何缺少的列,那个么您必须在该数据框中的特定列位置添加虚拟列,否则union将抛出列不匹配异常。在下面的示例中,df1中缺少列“c3”,所以我在df1的最后一个位置添加了伪列

from pyspark.sql.functions import lit

df1.select('c1','c2',lit('dummy')).union(df2.select('c1','c2','c3'))
df1.union(df2)
from pyspark.sql.functions import lit

df1.select('c1','c2',lit('dummy')).union(df2.select('c1','c2','c3'))