实际中往往我们规定一种排序方法,并且为了避免数据倾斜情况,需要我们自定义分区。这里我们讨论将一个城市四年来的温度按年份升序排序,同一年份的温度按照降序排序。
自定义排序
定义一个封装对象
该对象需要实现WritableComparable接口。
public class MyClass implements WritableComparable<MyClass>{
private int year;
private int temperature;
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getTemperature() {
return temperature;
}
public void setHot(int temperature) {
this.temperature = temperature;
}
@Override
//反序列化过程
public void readFields(DataInput in) throws IOException {
this.year=in.readInt();
this.temperature=in.readInt();
}
@Override
//序列化过程
public void write(DataOutput out) throws IOException {
out.writeInt(year);
out.writeInt(temperature);
}
@Override
public int