天天看点

7、MapReduce实现自定义排序功能

本文测试文本:

   MapReduce中,根据key进行分区、排序、分组

MapReduce会按照基本类型对应的key进行排序,如int类型的IntWritable,long类型的LongWritable,Text类型,默认升序排序

   为什么要自定义排序规则?现有需求,需要自定义key类型,并自定义key的排序规则,如按照人的salary降序排序,若相同,则再按age升序排序

以Text类型为例:

7、MapReduce实现自定义排序功能
7、MapReduce实现自定义排序功能
7、MapReduce实现自定义排序功能
7、MapReduce实现自定义排序功能

Text类实现了<code>WritableComparable</code>接口,并且有<code>write()</code>、<code>readFields()</code>和<code>compare()</code>方法

<code>readFields()</code>方法:用来反序列化操作

<code>write()</code>方法:用来序列化操作

所以要想自定义类型用来排序需要有以上的方法

自定义类代码:

MapReuduce程序:

运行结果:

继续阅读