我有两个具有不同但重叠列集的表。我希望以pandas的方式连接它们,但它在spark中非常低效。
X:
A B
0 1 3
1 2 4
Y:
A C
0 5 7
1 6 8
pd.concat(X, Y):
A B C
0 1 3 NaN
1 2 4 NaN
0 5 NaN 7
1 6 NaN 8
我尝试使用Spark SQL来做...
select A, B, null as C from X union all select A, null as B, C from Y
... 非常慢。我将此查询应用于两个大小为:(79行,17330列)和(92行,16列)的表。在火花2.01上运行 129s ,在Spark 2.01上运行 319s ,在pandas上运行1.2s。 为什么这么慢?这是某种错误吗? 使用spark可以更快地完成吗?
编辑: 我尝试以编程方式执行此操作:how to union 2 spark dataframes with different amounts of columns - 它甚至更慢。
似乎问题是添加空列也许它可以以某种方式解决,或者这部分可以更快?