当数据帧由单个列分区时,Efficient Spark会在多个列上保持连接

时间:2018-06-09 23:37:04

标签: apache-spark dataframe apache-spark-sql left-join database-partitioning

我有两个大型数据框df1df2按列a分区,我希望在a和另一列{{1}上有效地计算左连接}}:

b

如上所述,Spark按键df1.join(df2, on=['a', 'b'], how='left_outer')重新调整两个数据帧,这是非常低效的。相反,我希望它利用(a, b)的现有分区来避免shuffle(在每个分区中执行连接),这应该快得多(特别是因为我有进一步的处理步骤,从中受益)分区)。

有没有办法阻止这种混乱并获得由a分区的结果数据框?

请注意,如果是内连接,我可以执行以下操作,但(1)我不确定它是否有效,无论如何(2)它不能用于一个左连接(我只提供它,以防它帮助其他人):

a

PS:两个数据帧都太大而无法广播

0 个答案:

没有答案