有没有办法在使用自定义键的 mapreduce 作业的 compareTo 期间更改实例变量的值?(我有一些问题,因为它使用两种方法读取和写入数据 = readFields(DataInput in) 和 write(DataOutput out) ,并且它仅在第一次将对象写入框架,我无法修改它的其余部分过程)
我有此代码用于我的自定义键的 compareTo
@Override
public int compareTo(MultipleText m1) {
for(Writable one : m1.getChiavi().keySet())
{
if(this.chiavi.keySet().contains(one))
{
if(this.chiavi.get(one).equals(m1.getChiavi().get(one)))
if(!strutturaTab.equals(m1.getStrutturaTab()))
{
// if(this.chiavi.size()>m1.getChiavi().size())
// m1.setChiaviComplete(this.chiavi);
// else if(this.chiavi.size()<m1.getChiavi().size())
// this.setChiaviComplete(m1.getChiavi());
return 0;
}
return 1;
}
return 2;
}
return -1;
}
注释行是不起作用的行
当它进入减少阶段时,方法 getChiaviComplete() 返回 null ,这是我初始化并写入(使用 write(DataOutput out) 方法)实例变量(chiaviComplete)时的值