• 技术文章 >数据库 >mysql教程

    hadoop mapreduce数据去重

    2016-06-07 14:58:47原创760

    hadoop mapreduce数据去重 假设我们有下面两个文件,需要把重复的数据去除。 file0 [plain] 2012-3-1 a 2012-3-2 b 2012-3-3 c 2012-3-4 d 2012-3-5 a 2012-3-6 b 2012-3-7 c 2012-3-3 c file1 [plain] 2012-3-1 b 2012-3-2 a 2012-3-3 b 2012-3-4 d 2012-3-

    hadoop mapreduce数据去重

    假设我们有下面两个文件,需要把重复的数据去除。

    file0

    [plain]

    2012-3-1 a

    2012-3-2 b

    2012-3-3 c

    2012-3-4 d

    2012-3-5 a

    2012-3-6 b

    2012-3-7 c

    2012-3-3 c

    file1

    [plain]

    2012-3-1 b

    2012-3-2 a

    2012-3-3 b

    2012-3-4 d

    2012-3-5 a

    2012-3-6 c

    2012-3-7 d

    2012-3-3 c

    我们知道,map处理之后,相同的key的值会被聚合起来,交给一个reduce处理,所以,我们可以把输出的内容作为输出的key,reduce原样输出key就OK,mapreduce的代码如下:

    [java]

    // map将输入中的value复制到输出数据的key上,并直接输出

    public static class Map extends Mapper {

    private static Text line = new Text();// 每行数据

    // 实现map函数

    public void map(Object key, Text value, Context context)

    throws IOException, InterruptedException {

    line = value;

    context.write(line, new Text(""));

    }

    }

    // reduce将输入中的key复制到输出数据的key上,并直接输出

    public static class Reduce extends Reducer {

    // 实现reduce函数

    public void reduce(Text key, Iterable values, Context context)

    throws IOException, InterruptedException {

    context.write(key, new Text(""));

    }

    }

    处理后的文件如下:

    [plain]

    2012-3-1 a

    2012-3-1 b

    2012-3-2 a

    2012-3-2 b

    2012-3-3 b

    2012-3-3 c

    2012-3-4 d

    2012-3-5 a

    2012-3-6 b

    2012-3-6 c

    2012-3-7 c

    2012-3-7 d

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:mongo单台设备分片--2 下一篇:mongodb中的AND和OR
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• MySql实例详解之怎么查出符合条件的最新的数据行• MySQL5.7.31如何安装和配置?(保姆级教程分享)• 深入了解MySQL中的join语句算法(优化方法介绍)• 聊聊MySQL的基础架构和日志系统• 实例详解MySQL占用内存过大解决方法
    1/1

    PHP中文网