import org.apache.hadoop.io.WritableComparable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
/**
* 序列化和比较:
* 序列化实现:Writable
* 比较实现:Comparable
* 既序列化又比较实现:WritableComparable 后面要加泛型
*/
public class SortWritable implements WritableComparable<SortWritable> {
private String first;
private int second;
/**
* 比较:先比较第一个如果第一个相同再比较第二个,第一个不相等直接返回结果
* @param o
* @return
*/
@Override
public int compareTo(SortWritable o) {
int i = this.first.compareTo(o.first);
if(i==0){
int i1 = Integer.valueOf(this.second+"").compareTo(Integer.valueOf(o.second));
return i1;
}else{
return i;
}
}
/**
* 序列化,把字符串转换成字节流,保存下来,在JVM生命周期结束也可以被传输
* @param out
* @throws IOException
*/
@Override
public void write(DataOutput out) throws IOException {
out.writeUTF(this.first);
out.writeInt(second);
}
/**
*
hadoop二次排序,自定义计数器
最新推荐文章于 2025-08-15 16:02:33 发布
本文详细探讨了Hadoop MapReduce中如何实现二次排序,以及如何自定义计数器进行任务监控。通过实例讲解,读者将理解如何处理复杂的排序需求,并掌握计数器在MapReduce作业中的使用技巧。

最低0.47元/天 解锁文章
1179

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



