scala之如何拆分一个大数据帧并使用较小的部分在 Spark 中进行多个广播连接

langtianya 阅读:39 2024-10-24 08:47:37 评论:0

假设我们有两个非常大的数据帧——A 和 B。现在,我知道如果我对两个 RDD 使用相同的哈希分区器然后进行连接,键将位于同一位置并且连接可能会更快减少洗牌(唯一会发生的洗牌是当分区程序在 A 和 B 上发生变化时)。

虽然我想尝试一些不同的东西 - 我想像这样尝试广播连接 -> 假设 B 比 A 小,所以我们选择 B 进行广播,但 B 仍然是一个非常大的数据帧。所以,我们要做的是从 B 中生成多个数据帧,然后将每个数据帧作为广播发送到 A 上。

有人试过吗? 要将一个数据帧拆分为多个数据帧,我只看到了 randomSplit 方法,但这看起来不是一个很好的选择。

还有其他更好的方法来完成这项任务吗?

谢谢!

请您参考如下方法:

Has anyone tried this?

是的,有人已经尝试过了。特别是 GoDataDriven。您可以在下面找到详细信息:

他们声称对偏斜数据有很好的结果,但是您必须自己考虑三个问题:

randomSplit method but that doesn't look so great an option.

其实还不错。

Any other better way to accomplish this task?

您可以尝试按分区 ID 进行过滤。


标签:大数据
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号