MapReduce中自定义输入类型在映射器中无法按照键进行区分解决方案
有时候在运行带有自定义输入输出类型的MapReduce程序时偶然会出现映射器中的数据无法按照键值对中的键 对数据进行区分,导致归约器处理数据产生错误,解决方案如下
在自定义输入输出类型中定义compareTo函数使其按照一定规则进行排序
@Override
public int compareTo(PairOfStrings o) {
if(this.leftElement.compareTo(o.leftElement)!=0){
return this.leftElement.compareTo(o.leftElement);
}else if(this.rightElement!=o.rightElement){
return this.rightElement.compareTo(o.rightElement);
}else{
return 0;
}
}
指定了排序规则后问题即可解决