题目:
对给定的文件进行词频统计,然后按照词频从大到小排序
词频相同时,按照单词的字典序
思路:
通过两个MR进行解决
第一个MR:统计词频
第二个MR:利用Shuffle阶段的排序,实现排序效果
代码:
//单词类
package Test02;
import org.apache.hadoop.io.WritableComparable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class WordWritable implements WritableComparable<WordWritable> {
private String word;
private int num;
public int compareTo(WordWritable o) {
int tmp = o.num-this.num;
if(tmp != 0){
return tmp;
}
return this.word.compareTo(o.word);
}
public void write(DataOutput dataOutput) throws IOException {
dataOutput.writeUTF(this.word);
dataOutput.writeInt(this.num);
}
public void readFields(DataInput dataInput) throws IOException {
this.word = dataInput.readUTF();
this.num = dataInp

本文介绍如何使用MapReduce进行词频统计并按词频和字母顺序排序。通过两次MapReduce作业,首先统计每个单词的出现次数,然后利用Shuffle阶段的内在排序功能完成最终的排序需求。
最低0.47元/天 解锁文章
2777

被折叠的 条评论
为什么被折叠?



