我们假设我们有两个非常大的数据框--A和B.现在,我明白如果我为两个RDD使用相同的散列分区,然后进行连接,则密钥将位于同一位置并且连接减少改组可能会更快(当分区器在A和B上改变时,唯一的改组就会发生。)
我想尝试不同的东西 - 我想尝试广播连接 - >让我们说B小于A,所以我们选择B广播,但B仍然是一个非常大的数据帧。所以,我们想做的是从B中制作多个数据帧,然后将每个数据帧作为广播发送到A上。
有人试过吗? 要将一个数据框分成多个,我只看到了randomSplit方法,但看起来不是很好。
完成此任务还有其他更好的方法吗?
谢谢!
答案 0 :(得分:2)
有没有人试过这个?
是的,有人已经尝试过了。特别是GoDataDriven。您可以在下面找到详细信息:
他们声称数据偏差很好,但是你必须考虑三个问题:
randomSplit方法,但看起来不是很好。
实际上并不坏。
完成此任务还有其他更好的方法吗?
您可以尝试按分区ID进行过滤。