我有两个具有相同结构和大致相同数据量的大数据,我需要加入它们来确定在一个DF中是否有任何行丢失,而不是另一个DF。数据文件足够大(最多可达8,000万行,或~40 an ),使得广播连接不是一个选项。缺失行的数量通常很小,最坏的情况下最多可达10K。联接位于2-4列(两边相同)上的表达式上,形式为concat(coalesce(colA, ""), "|", coalesce(colB, ""), "|", coalesce(colC, "")),因为一些键列可以为NULL。
我们正在考虑使用分区(无论是在连接之前还是之后),因为join引起的混乱在我们的生产环境中似乎会导致低性能。为有效的左联接划分数据文件的推荐方法是什么?
发布于 2018-02-21 18:02:40
首先,分区可以提高join操作only的性能,如果join操作将执行多次而不更改至少一个DataFrame。
类似的答案已经提供了这里 --在一次join之前使用分区只会在另一个地方引起混乱。
在join之后使用分区不会有任何积极的效果。
此外,分区对join操作的影响主题在第61页的这书籍中解释。
https://stackoverflow.com/questions/48894264
复制相似问题