文件管理 · 2023年8月12日

wordcount|mapreduce中的wordcount将结果降序输出

A. maprece中的wordcount将结果降序输出

这个结果的排序是在sort阶段,根据key来进行排序,Hadoop默认采用的是基本排序策略,你要想实现自己的排序算法,得要自定义===》这是大体的思路。

下面是一个自定义的key2 ;

{privateStringkey="";privateintvalue=0;publicMyText(){}publicMyText(Stringkey,intvalue){this.key=key;this.value=value;}@Overridepublicvoidwrite(DataOutputout)throwsIOException{out.writeUTF(key);out.writeInt(value);}@OverridepublicvoidreadFields(DataInputin)throwsIOException{key=in.readUTF();value=in.readInt();}@OverridepublicintcompareTo(Objecto){MyTextother=(MyText)o;return-this.key.compareTo(other.key);}publicintCompareToValue(Objecto){MyTextother=(MyText)o;returnthis.value-other.value;}publicStringgetKey(){returnkey;}publicvoidsetKey(Stringkey){this.key=key;}publicintgetValue(){returnvalue;}publicvoidsetValue(intvalue){this.value=value;}}

这样 就可以根据compareTo方法实现倒序排列,根据CompareToValue方法实现判断值的大小,你再rece端进行下改写,在cleanup的时候写出就可以了~

Hadoop1小组回答,仅供参考……