我有两个大型数据框df1
和df2
按列a
分区,我希望在a
和另一列{{1}上有效地计算左连接}}:
b
如上所述,Spark按键df1.join(df2, on=['a', 'b'], how='left_outer')
重新调整两个数据帧,这是非常低效的。相反,我希望它利用(a, b)
的现有分区来避免shuffle(在每个分区中执行连接),这应该快得多(特别是因为我有进一步的处理步骤,从中受益)分区)。
有没有办法阻止这种混乱并获得由a
分区的结果数据框?
请注意,如果是内连接,我可以执行以下操作,但(1)我不确定它是否有效,无论如何(2)它不能用于一个左连接(我只提供它,以防它帮助其他人):
a
PS:两个数据帧都太大而无法广播