>데이터 베이스 >MySQL 튜토리얼 >hadoop mapreduce数据排序

hadoop mapreduce数据排序

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-07 14:58:431482검색

hadoop mapreduce数据排序 有如下3个输入文件: file0 [plain] 2 32 654 32 15 756 65223 file1 [plain] 5956 22 650 92 file2 [plain] 26 54 6 由于reduce获得的key是按字典顺序排序的,利用默认的规则即可。 [java] // map将输入中的value化成IntWritable

hadoop mapreduce数据排序

 

有如下3个输入文件:

 

file0

 

[plain] 

2  

32  

654  

32  

15  

756  

65223  

 

file1

[plain] 

5956  

22  

650  

92  

 

file2

[plain] 

26  

54  

6  

 

由于reduce获得的key是按字典顺序排序的,利用默认的规则即可。

[java] 

// map将输入中的value化成IntWritable类型,作为输出的key  

    public static class Map extends  

            Mapper {  

          

        private static IntWritable data = new IntWritable();  

  

        // 实现map函数  

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

                throws IOException, InterruptedException {  

            String line = value.toString();  

            data.set(Integer.parseInt(line));  

            context.write(data, new IntWritable(1));  

        }  

    }  

  

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

    // 然后根据输入的value-list中元素的个数决定key的输出次数  

    // 用全局linenum来代表key的位次  

    public static class Reduce extends  

            Reducer {  

        private static IntWritable linenum = new IntWritable(1);  

  

        // 实现reduce函数  

        public void reduce(IntWritable key, Iterable values,  

                Context context) throws IOException, InterruptedException {  

            for (IntWritable val : values) {  

                context.write(linenum, key);  

                linenum = new IntWritable(linenum.get() + 1);  

            }  

        }  

    }  

 

输出如下:

[plain] 

1   2  

2   6  

3   15  

4   22  

5   26  

6   32  

7   32  

8   54  

9   92  

10  650  

11  654  

12  756  

13  5956  

14  65223  

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.