0
compareTo过程中更改密钥中的值在使用自定义密钥的mapreduce作业的compareTo过程中,有更改实例变量的值的方法吗? (我有一些问题,因为它使用两种方法读取和写入数据= readFields(DataInput in)和write(DataOutput out),并且它只在第一次将对象写入框架,而我无法修改其余部分过程)在hadoop mapreduce
我有此代码为我的我的自定义键
@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;
}
的的compareTo注释行是doesen't作品
当它减少相法getChiaviComplete(行)返回null,这是我初始化和写入时的值(使用write(DataOutput out)方法)实例变量(chiaviComplete )