大数据培训教程WritableComparable排序案例实操(区内排序)
1.需求
要求每个省份手机号输出的文件中按照总流量内部排序。
2.需求分析
基于前一个需求,增加自定义分区类大数据排序,分区按照省份手机号
WritableComparable排序案例实操(区内排序) 1.需求 要求每个省份手机号输出的文件中按照总流量内部排序。 2.需求分析 基于前一个需求,增加自定义分区类大数据排序,分区按照省份手机号设置。 3.案例实操 (1)增加自定义分区类 package com.atguigu.mapreduce.sort; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Partitioner; public class ProvincePartitioner extends Partitioner { @Override public int getPartition(FlowBean key, Text value, int numPartitions) { // 1 获取手机号码前三位 String preNum = value.toString().substring(0, 3); int partition = 4; // 2 根据手机号归属地设置分区 if (“136”.equals(preNum)) { partition = 0; }else if (“137”.equals(preNum)) { partition = 1; }else if (“138”.equals(preNum)) { partition = 2; }else if (“139”.equals(preNum)) { partition = 3; } return partition; } } (2)在驱动类中添加分区类 // 加载自定义分区类 job.setPartitionerClass(ProvincePartitioner.class); // 设置Reducetask个数 job.setNumReduceTasks(5); (编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |