hadoop mapreduce中groupcomparator的简单理解

近期重温下MapReduce,发现对reduce端的groupcomparator不理解,于是在百度查找答案,看了大多技术贴,很多都是代码例子,依然没看懂(怪我太菜)

于是自己寻找答案,并在此记录。

学过mapreducec的大佬们都知道,在map端产生<key,value>数据后,进过shuttle,之后进入reduce端的数据是以相同的key为一组对应着相同或不同的value。有n个不相同的key,reduce方法会被执行n次。例子如下:

使用数据如下

创建orderbean,数据以orderbean对象在mapreduce进行计算,在reduce端获得数据为orderbean为key,nullwritable为value。通过上述数据会有7个orderbean对象。从下面代码得知每个orderbean对像都是不同的key。

map

reduce

运行结果

当增加groupcomparator时分成一组,代码如下,reduce端只有一个key

groupcomparator

增加groupcomparator运行结果

接着将相同order_id的orderbean分在同一组,根据数据中第一列数据id有三种不同的id,所有的orderbean 会分成三组,此时在reduce端会有三个不同的key

groupcomparator

运行结果

从上面的代码运行结果可以看出groupcomparator根据orderbean的某一属性进一步分组,有几个不同的属性值就会划分为几组,从而在reduce端获得几个不同的key.可以根据不同的业务需求进行使用。

最后又有不对的地方欢迎指正!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值