我知道在次要排序中我们可以将用户定义的类作为键。这个类可以有两个属性,例如,可以根据第一个(自然键)属性对这些对进行分组,然后根据第二个属性(辅助键)进行排序。我的问题是,键对象的第二个属性(辅助键)具有不同的值。所以reducer不能接收单个key。也就是说,reducer 应该收到一个键列表,因为每个键的第二个属性(辅助键)都有不同的值。那正确吗?
这里是关键类
public class KeyClass extends Configured implements WritableComparable<KeyClass >{
public boolean secondary;
public String primary;
...
最佳答案
reduce 获取一个键和一个值列表(一个 Iterable)。您获得的 key 与列表中的值之一相关联。如果您想访问辅助键(在值列表中发生变化的复合键值的那部分),那么您也应该将该辅助键放入值中。
关于hadoop - Hadoop 中的二次排序如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20807086/