* set\get
*
* @return
*/
public long getUpFlow() {
return upFlow;
}
public void setUpFlow(long upFlow) {
this.upFlow = upFlow;
}
public long getDownFlow() {
return downFlow;
}
public void setDownFlow(long downFlow) {
this.downFlow = downFlow;
}
public long getSumFlow() {
return sumFlow;
}
public void setSumFlow(long sumFlow) {
this.sumFlow = sumFlow;
}
public void set(long upFlow1, long downFlow1) {
upFlow = upFlow1;
downFlow = downFlow1;
sumFlow = upFlow+downFlow;
}
}
[**返回顶部**](#0)
---
#### ② Mapper 阶段
* **定义TreeMap集合**
* **读取数据、拆分、封装Bean对象**
* **以Bean对象为key,号码为value键值对存入TreeMap集合,按照自定义排序进行排序**
* **存入同时判断集合大小,以达到提取前n名的效果**
* **遍历集合写出到Reducer端**
package 第七章_MR扩展案例.TopN;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
import java.util.Iterator;
import java.util.TreeMap;
public class TopNMapper extends Mapper<LongWritable, Text, TopNBean, Text> {
// 1.定义一个treeMap作为存储数据的容器(自动按照key排序)
private TreeMap<TopNBean, Text> treeMap = new TreeMap<>();
TopNBean k;
Text v = new Text();
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
// 13470253144 180 180 360
// 13509468723 7335 110349 117684
k = new TopNBean();
// 1.读取一行数据
String line = value.toString();
// 2.拆分
String[] fields = line.split(“\t”);
// 3.封装Beand