我有两个具有相同结构的大型数据帧,大致相同的数据量,我还要加入它们以确定一个DF中是否缺少任何行而不是另一个DF。数据帧足够大(高达8000万行,或~40Gb),使广播连接不是一个选项。丢失行的数量通常很小,最坏情况下最多可达10K。连接是一个表达式超过2-4列(两侧都相同),形式为concat(coalesce(colA, ""), "|", coalesce(colB, ""), "|", coalesce(colC, ""))
,因为一些键列可能为NULL。
我们正在考虑使用分区(在连接之前或之后),因为连接引起的混乱似乎会导致我们的生产环境中的低性能。为高效的左连接分区数据帧的推荐方法是什么?
答案 0 :(得分:2)
首先,如果join
操作将多次执行而不更改,则分区可以提高join
操作 的性能至少一个DataFrame。
已经提供了类似的答案this - 在一次性join
之前使用分区只会导致在不同的地方进行随机播放。
在join
之后使用分区不会产生任何积极影响。
join
操作主题的分区效果也在第{61页的Digital Oceans 一书中解释。