zoukankan      html  css  js  c++  java
  • MapReduce ----数据去重

    三个文件

    2017-03-10 a
    2017-03-11 b
    2017-03-12 d
    2017-03-13 d
    2017-03-14
    2017-03-15 a

    2017-03-10 e
    2017-03-11 b
    2017-03-12 c
    2017-03-13
    2017-03-14 h
    2017-03-15 a
    2017-03-17 p

    2017-03-10
    2017-03-11 b
    2017-03-12
    2017-03-13 d
    2017-03-14
    2017-03-15 f
    2017-03-16 o


    import java.io.IOException;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.Reducer;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    
    public class Deup{
        public static class Map extends Mapper<Object, Text, Text, Text>{
            @Override
            protected void map(Object key, Text value, Mapper<Object, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                context.write(value, new Text(""));
            }
        }
        
        public static class Reduce extends Reducer<Text, Text, Text, Text>{
            @Override
            protected void reduce(Text key, Iterable<Text> values, Reducer<Text, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                context.write(key, new Text(""));
            }
        }
        public static void main(String[] args) throws Exception {
            Configuration conf=new Configuration();
            @SuppressWarnings("deprecation")
            Job job=new Job(conf);
            job.setJarByClass(Deup.class);
            job.setMapperClass(Map.class);
            job.setCombinerClass(Reduce.class);
            job.setReducerClass(Reduce.class);
           job.setOutputKeyClass(Text.class);
           job.setOutputValueClass(Text.class);  
            FileInputFormat.addInputPath(job, new Path(args[0]));
            FileOutputFormat.setOutputPath(job, new Path(args[1]));
            System.exit(job.waitForCompletion(true)?0:1);
            
        }
    }

    结果

    2017-03-10    
    2017-03-10 a    
    2017-03-10 e    
    2017-03-11 b    
    2017-03-12    
    2017-03-12 c    
    2017-03-12 d    
    2017-03-13    
    2017-03-13 d    
    2017-03-14    
    2017-03-14 h    
    2017-03-15 a    
    2017-03-15 f    
    2017-03-16 o    
    2017-03-17 p   

  • 相关阅读:
    泛型的二阶构造
    二叉树的优势
    浅谈AVL树,红黑树,B树,B+树原理及应用
    AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?
    据库索引及其数据结构
    关系型数据库工作原理-数据结构(3)
    数据库的最简单实现
    为什么使用数据库?数据库的存取效率如何保证?
    iOS原生数据存储策略
    数据存储要解决的几个问题
  • 原文地址:https://www.cnblogs.com/tk55/p/6557489.html
Copyright © 2011-2022 走看看