MapReduce中partition、sort、group

partition是分区,默认根据key的hash值分区,确定各个key分到哪个reducer中去,计算方法一般是HashValue%Num(reducer),如果只有一个分区,则全都分配到一个区。

sort是在分区内根据key进行排序。

group是分组,是在partition里面再分组,相同的key分到一个组中去,实现方法是compare(o1,o2),相同为一个group。

有些问题需要我们定制Writeable类型,构造一个组合键,比如二次排序的问题,构造组合键(年份+温度),根据年份升序,根据温度降序问题。需要我们构造一个年份加温度的组合键。年份称作自然键。定义组合键类时需要implements WritableComparable<T>,重写readFields(),write(),get/set,compareTo(),toString(),hashCode()

首先我们通过自然键来给数据分区,将同一个区的数据分配到一个reducer中去。

利用组合键通过extends WritableComparator设计sort方法,重写compare方法实现多次排序。

利用自然键部分extends WritableComparator设计group方法,重写compare方法将自然键相同的数据分到一个组里面去。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值