gpt4 book ai didi

java - 为 Hadoop 实现 WritableComparable

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

我已经为我的 map 作业实现了 WritableComparable 并向它传递了三个值。

public class KeyCustom implementsw WritableComparable<KeyCustom>
{
private Text placeOfBirth;
private Text country;
private LongWritable age;
//Implemented constructors and set methods, write, readFields, hashCode and equals
@Override
public int compareTo(KeyCustom arg0)
{
return placeOfBirth.compareTo(arg0.placeOfBirth);
}
}

但是当我在 reducer 中记录这三个字段时,我可以清楚地看到所有来自同一国家/地区的人都被分组在一起。如果有人能帮助我,让我所有的 reducer 都能得到出生地相同的人,那就太好了。我不知道该怎么做,或者我的 compareTo 函数是否有误。

感谢大家的帮助。

最佳答案

您正试图用错误的方法解决您的任务。您真正需要的是实现适当的分区程序。

顺便说一句,您不需要特殊的compareTo() 实现来进行特殊的分区。

更新:

尝试将分区器更改为 TotalOrderPartitioner在您的工作中,您的问题可能会得到解决。 Here is not bad example它应该看起来像什么。

关于java - 为 Hadoop 实现 WritableComparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669910/

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