Kum*_*hav 3 scala apache-spark
假设我们有两个非常大的数据帧 - A 和 B。现在,我明白如果我对两个 RDD 使用相同的哈希分区器然后进行连接,键将位于同一位置,并且连接可能会更快,同时减少混洗(唯一会发生的改组将是分区程序在 A 和 B 上发生变化时)。
我想尝试一些不同的东西 - 我想像这样尝试广播连接 -> 假设 B 比 A 小,所以我们选择 B 进行广播,但 B 仍然是一个非常大的数据帧。所以,我们想要做的是从 B 中制作多个数据帧,然后将每个数据帧作为广播发送到 A 上。
有没有人试过这个?要将一个数据帧拆分为多个数据帧,我只看到了 randomSplit 方法,但这看起来并不是一个很好的选择。
还有其他更好的方法来完成这项任务吗?
谢谢!
有没有人试过这个?
是的,已经有人试过了。特别是 GoDataDriven。您可以在下面找到详细信息:
他们声称对偏斜数据的结果非常好,但是您必须自己考虑三个问题:
randomSplit 方法,但这看起来不是一个很好的选择。
这实际上并不是一件坏事。
还有其他更好的方法来完成这项任务吗?
您可以尝试按分区 id 过滤。
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |