合并(不是SQL连接)2个Spark数据帧

时间:2019-04-10 19:48:37

标签: apache-spark apache-spark-sql

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

第一

firstnames|lastnames|age
tom|form|24
bob|lip|36
....

firstnames|lastnames|age
mary|gu|24
jane|lip|36
...

我想同时使用两个数据帧并将它们组合成一个看起来像这样的数据:

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

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

2 个答案:

答案 0 :(得分:1)

如果两个数据帧的结构相同,则很简单-union()

df1.union(df2)

如果任何数据框缺少任何列,则可以在该数据框的特定列位置上添加虚拟列,否则联合将引发列不匹配异常。在下面的示例中,df1中缺少列“ c3”,因此我在df1中的最后一个位置添加了虚拟列。

from pyspark.sql.functions import lit

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

答案 1 :(得分:0)