Hadoop大作业排序实例代码
Hadoop大作业排序实例代码涉及MapReduce中对key的比较和排序。在java中,实现类的大小比较需要实现Comparable接口,并通过重写compareTo方法来实现。在MapReduce中,如果需要自定义类的排序规则,必须让类实现Writable的子接口WritableComparable,重写其中的write、readFields和compareTo方法。因此,可以创建一个自定义类作为key,包含两个需要排序的字段,并在类中实现比较算法。首先判断first_name是否相等,相等时再比较last_name。为了更精细的控制排序,还可以创建分区类并定义分区规则,将具有相同首字母的first_name放在同一分区。进一步编写Mapper和Reducer类,将写入表格数据的文本文件作为map的输入。在map方法中,对每行数据设置自定义的key,将v2设为当前行的数据,然后输出到reducer程序。
用户评论