gpt4 book ai didi

hadoop - Hadoop奇怪的行为:reduce函数无法获得键的所有值

转载 作者:行者123 更新时间:2023-12-02 21:44:14 24 4
gpt4 key购买 nike

在我的Hadoop项目中,我正在读取文本文件的各行,每一行都有许多名称。名字代表我的用户名,其余代表 friend 列表。
然后,我在map函数中创建(用户名, friend )对,每对都有一个键“Key [name1] [name2]”,其中name1,2是用户名和按字母顺序排列的 friend 名。
通常,在读取userA和userB的行,并且它们都在 friend 列表中之后,我将获得2个具有不同值的相同键,在这种情况下,它们是:KeyUserAUserB:“UserA,UserB”和KeyUserAUserB: “用户B,用户A”。
我在reduce函数中期望的是一次获得KeyUserAUserB作为键,并获得一对“UserA,UserB”,“UserB,UserA”作为值。因此,值迭代器将包含2个元素。
但是,在化简函数中,我分别使用单个值获得了两次KeyUserAUserB。这不是我对Hadoop的期望。

我还注意到在我的用户日志中,我有4个“m”个文件夹,在其中的前2个中,我有帮助我识别上述内容的日志。在两个“m”日志中,映射函数的输出(System.out)与reduce函数的输出交织在一起。我不知道这是否与我的异常有关,但我希望将reduce输出保留在“r”文件夹中。
另外,对于上面的示例,KeyUserAUserB的一个日志打印在一个“m”日志文件中,而另一个KeyUserAUserB则打印在另一个日志文件中……尽管在某些情况下,碰巧一个KeyUserAUserB带有两个值,但我发现至少在一种情况下,它永远不会同时带有两个值(并且具有相同键的那两对键值也位于不同的“m”日志文件中)。

我注意到的另一件事是,从Reduce函数收集的输出不会将值直接发送到输出文件,而是将它们再次作为相同的Reduce函数的输入传递给...

您如何看待这种行为,可能是什么原因?

最佳答案

最后。整个意外行为是因为我使用的是组合器类= reducer 类。评论该行后,一切都按预期进行。

关于hadoop - Hadoop奇怪的行为:reduce函数无法获得键的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26693034/

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