04 MR-分区

 

 

MapReduce的分区

  • 分区: 将相同的 k2 的数据发送到同一个分区中

  • 物以类聚,人与群分

 

 

 

案例 将彩票中的彩票结果进行分区操作并输出

需求:

 

将partition.csv文本文件中的彩票数据进行分区,小于等于15的分到一个区里, 大于15的分到另外一个区里,并最终将数据保存到两个文件中。

思路:怎么进行数据的分区?

  • mapreduce 默认分区的方式是 hashPartiton

(key.hashCode() & Integer.MAX_VALUE)  % numReduceTasks;  #默认情况numReduceTasks=1

  • 如何创建自定义分区

    1. 创建一个类,继承 Partitioner<K,V>

    2. 重写 getPartition 方法

    3. 自定义分区规则,小于等于1 5是个规则0,大于15是个规则1

    4. 在入口函数在中将分区规则设置到驱动类

 

 

 

 

代码:

 

 

https://download.csdn.net/download/woshilovetg/13735711

linux执行

yarn jar original-day09_mapreduce1-1.0-SNAPSHOT.jar cn.itcast.partition.LotteryMain /input/partition/partition.csv /output/partition

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值