翻了以前代码看了下15年时候写的二次排序 哈哈 怀念
实现hadoop自带WritableComparable 序列化排序接口
package com.lei.sort;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.WritableComparable;
public class StrWritable implements WritableComparable<StrWritable>{
private String strName;
private String strValue;
public void setstrName(String strName) {
this.strName = strName;
}
public void setstrValue(String strValue) {
this.strValue = strValue;
}
public String getstrName() {
return strName;
}
public String getstrValue() {
return strValue;
}
@Override
public void write(DataOutput out) throws IOException {
out.writeUTF(strName);
out.writeUTF(strValue);
}
@Override
public void readFields(DataInput in) throws IOException {
strName =in.readUTF();
strValue =in.readUTF();
}
@Override
public int compareTo(StrWritable o) {
//这里只对StrName进行比较,在Job中在没有分组函数情况下,默认是这个排序,也可以重新定 义
int i= o.getstrName().compareTo(this.strName);
//if(i!=0)
return i;
//return o.getstrName().compareTo(this.strName);
}
}
Main函数
package com.lei.sort;
import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.