MapReduce —— Reducer 阶段代码

现在有一堆关于手机号的数据,需要从中获取每个手机号对应的上行流量,下行流量,以及总流量(总流量=上行流量+下行流量)

这个案例Mapper阶段代码:Mapper阶段代码

这个案例自定义Bean对象阶段代码:自定义Bean阶段代码

具体Reducer阶段代码如下:

public class FlowCountReducer extends Reducer<Text,FlowBean,Text,FlowBean>{
 
 FlowBean v = new FlowBean();
 //这里只需要创建FlowBean对象,因为reducer阶段只需要对value进行操作,
 //key还是原来从mapper传过来的key,直接提交即可
 
 //重写reduce方法
 protected void reduce (Text,Iterable<FlowBean>,Context context) throws IOException{
  //到这里是从reduce段接收的数据只有手机号,上行流量,下行流量
  
  long sum_upFlow=0;  //定义求和变量时一定要赋值 0 
  long sum_downFlow=0;
  
  // 1. 累加求和
  for(FlowBean flowBean : values){
   sum_upFlow+=flowBean.getUpFlow();
   sum_downFlow+=flowBean.getDownFlow();
  }
  
  v.set(sum_upFlow,sum_downFlow); //定义了一个求和的set方法,这里调用的是FlowBean的求和方法set
   
  // 2. 写出
  context.write(key,v);
  }
}

在这里插入图片描述

Reducer 阶段就两大步骤:

  1. 累加求和;
  2. 写出;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值