package com.ellis.mr3;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableComparable;
/**
* 自定义排序需要根据上一次结果进行排序,上一次结果的reduce输入为一个文件,不然只能做到局部排序。
*
* @author wxz
*
*/
public class FlowBean implements WritableComparable<FlowBean>{
private long upFlow;
private long dFlow;
private long sumFlow;
public FlowBean(){}
public FlowBean(long upFlow, long dFlow) {
this.upFlow = upFlow;
this.dFlow = dFlow;
this.sumFlow = upFlow + dFlow;
}
public void set(long upFlow, long dFlow,long sumFlow) {
this.upFlow = upFlow;
this.dFlow = dFlow;
this.sumFlow = sumFlow;
}
/**
* 序列化
* @param out
* @throws IOException
*/
@Override
public void write(DataOutput out) throws IOException {
out.writeLong(upFlow);
out.writeLong(dFlow);
out.writeLong(sumFlow);
}
/**
* 反序列化
* @param in
* @throws IOException
*/
@Override
public void readFields(DataInput in) throws IOException {
upFlow = in.readLong();
dFlow = in.readLong();
sumFlow = in.readLong();
}
/**
* 自定义排序,根据总流量排序
*/
@Override
public int compareTo(FlowBean o) {
return this.sumFlow > o.getSumFlow() ? 1 : -1;
}
public long getUpFlow() {
return upFlow;
}
public void setUpFlow(long upFlow) {
this.upFlow = upFlow;
}
public long getdFlow() {
return dFlow;
}
public void setdFlow(long dFlow) {
this.dFlow = dFlow;
}
public long getSumFlow() {
return sumFlow;
}
public void setSumFlow(long sumFlow) {
this.sumFlow = sumFlow;
}
@Override
public String toString() {
return "" + upFlow + "\t" + dFlow + "\t" + sumFlow;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
mr-wc-partitioner-udfsort.rar (29个子文件)
hadoop
.project 382B
bin
com
ellis
mr1
PhoneMapper.class 2KB
FlowBean.class 2KB
PhoneDriver.class 2KB
PhoneReducer.class 2KB
mr3
PhoneMapper.class 2KB
FlowBean.class 2KB
PhoneDriver.class 2KB
PhoneReducer.class 2KB
mr2
partitioner
ProvincePartioner.class 2KB
PhoneMapper.class 2KB
FlowBean.class 2KB
PhoneDriver.class 2KB
PhoneReducer.class 2KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
ellis
mr1
PhoneReducer.java 620B
FlowBean.java 1KB
PhoneMapper.java 1023B
PhoneDriver.java 1KB
mr3
PhoneReducer.java 414B
FlowBean.java 2KB
PhoneMapper.java 1KB
PhoneDriver.java 1KB
mr2
partitioner
PhoneReducer.java 632B
FlowBean.java 1KB
PhoneMapper.java 637B
ProvincePartioner.java 684B
PhoneDriver.java 2KB
.classpath 376B
共 29 条
- 1
资源评论
林之风hhsk
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功