gpt4 book ai didi

java - 在 hadoop 中实现交叉连接

转载 作者:可可西里 更新时间:2023-11-01 14:39:32 25 4
gpt4 key购买 nike

我正在尝试在 java 中使用 hadoop 实现交叉连接。联接的两边都足够大,我无法将它们中的任何一个保留在内存中。我已经尝试了几件事,虽然我意识到 PIG/hive 可能更容易,但我想实现它 native java。

我认为 CompositeInputFormat 可能是执行此操作的方法,但我无法找到任何示例代码。

我曾尝试将标记数据发送到 SequenceFileInputFormat 并厌倦了使用 Reducer 来连接数据,但它也不起作用。 (如果这是正确的方式,我可以提供更多细节)。

是否有一些示例代码我可以看一下?

最佳答案

CompositeInputFormat 要求两组数据按连接键排序和分区。

您可能想做您尝试过的事情,这称为减少端连接。谷歌它以获取更多信息,或查看 Hadoop book 中的讨论。 .您使用原始数据集标记该值,并将键作为连接键/外键。在 reducer 中,这两个集合在一起,你可以做任何你想做的连接行为。

你是对的,在 Pig/Hive 中做这样的连接更简单。 pig 例子:

A = LOAD ...
B = LOAD ...
JOINED = JOIN A BY $0, B BY $0;

关于java - 在 hadoop 中实现交叉连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com