zoukankan      html  css  js  c++  java
  • 每日学习

    今天学习MapReduce

    WritableComparable 排序案例实操(区内排序)
    1)需求
    要求每个省份手机号输出的文件中按照总流量内部排序。
    2)需求分析
    基于前一个需求,增加自定义分区类,分区按照省份手机号设置
    (1)增加自定义分区类
    package com.atguigu.mapreduce.partitionercompable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Partitioner;
    public class ProvincePartitioner2 extends Partitioner<FlowBean, Text> {
    @Override
    public int getPartition(FlowBean flowBean, Text text, int numPartitions)
    {
    //获取手机号前三位
    String phone = text.toString();
    String prePhone = phone.substring(0, 3);
    //定义一个分区号变量 partition,根据 prePhone 设置分区号
    int partition;
    if("136".equals(prePhone)){
    partition = 0;
    }else if("137".equals(prePhone)){
    partition = 1;
    }else if("138".equals(prePhone)){
    partition = 2;
    }else if("139".equals(prePhone)){
    partition = 3;
    }else {
    partition = 4;
    }
    //最后返回分区号 partition
    return partition;
    }
    }
    (2)在驱动类中添加分区类
    // 设置自定义分区器
    job.setPartitionerClass(ProvincePartitioner2.class);
    // 设置对应的 ReduceTask 的个数
    job.setNumReduceTasks(5);
  • 相关阅读:
    WPF中实现Button.Content变化的简易动画
    WPF中ListBox的项ListBoxItem被选中的时候Background变化
    GD库处理图像
    PHP上传文件示例
    会话控制:Cookie和session
    PHP表单与验证
    PHP日期与时间
    PHP正则表达式
    PHP字符串处理
    目录与文件操作
  • 原文地址:https://www.cnblogs.com/haobox/p/15630816.html
Copyright © 2011-2022 走看看