如何有效地连接spark中不同列集的Dataframe?

tyky79it  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(417)

我有两个不同但重叠列集的表。我想以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

我试着用sparksql来做。。。

select A, B, null as C from X union all select A, null as B, C from Y

... 而且速度非常慢。我将此查询应用于两个大小为(79行,17330列)和(92行,16列)的表。在spark 1.62上运行了129秒,在spark 2.01上运行了319秒,在pandas上运行了1.2秒。为什么这么慢?这是某种虫子吗?使用spark能做得更快吗?
编辑:我试着用编程的方式来做:如何用不同数量的列合并2个sparkDataframe-这更慢。
似乎问题是添加空列,也许可以用不同的方法解决,或者这部分可以做得更快?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题