hadoop mapReduce程序模板-倒排索引
2014-11-12 14:40
309 查看
问题描述:统计某个号码被哪些号码呼叫了
输入文件如下:
13588888888 112
13678987879 13509098987
18987655436 110
2543789 112
15699807656 110
011-678987 112
说明:每一行为一条电话通话记录,左边的号码(记为a)打给右边的号码(记为b号码),中间用空格隔开
要求:
将以上文件以如下格式输出:
110 18987655436|15699807656
112 13588888888|011-678987
13509098987 13678987879
说明:左边为被呼叫的号码b,右边为呼叫b的号码a以"|"分割
解决思想很简单:Map中将a,b号码分割key为b,value为a写入context
Reduce中将values以"|"迭代分割
初始化job 时要注意输入输出类型:
job.setInputFormatClass(TextInputFormat.class); //数据到达map前,输入给map函数的时数据的组织结构形式,hadoop 会根据你设置的格式给map函数传递相应的key,value 实参,如TextInputFormat格式是默认的数据类型,它给map传递的key是每一行的第一的字节的在整个输入位置,value
就是所在行的数据值。
job.setOutputFormatClass(TextOutputFormat.class);//默认格式,将key value转出字符串输出
输入文件如下:
13588888888 112
13678987879 13509098987
18987655436 110
2543789 112
15699807656 110
011-678987 112
说明:每一行为一条电话通话记录,左边的号码(记为a)打给右边的号码(记为b号码),中间用空格隔开
要求:
将以上文件以如下格式输出:
110 18987655436|15699807656
112 13588888888|011-678987
13509098987 13678987879
说明:左边为被呼叫的号码b,右边为呼叫b的号码a以"|"分割
解决思想很简单:Map中将a,b号码分割key为b,value为a写入context
Reduce中将values以"|"迭代分割
初始化job 时要注意输入输出类型:
job.setInputFormatClass(TextInputFormat.class); //数据到达map前,输入给map函数的时数据的组织结构形式,hadoop 会根据你设置的格式给map函数传递相应的key,value 实参,如TextInputFormat格式是默认的数据类型,它给map传递的key是每一行的第一的字节的在整个输入位置,value
就是所在行的数据值。
job.setOutputFormatClass(TextOutputFormat.class);//默认格式,将key value转出字符串输出
相关文章推荐
- Hadoop MapReduce程序的模板框架
- 如何在Hadoop上编写MapReduce程序
- hadoop hdfs搭建 mapreduce环境搭建 wordcount程序简单注释
- Hadoop示例程序之单词统计MapReduce
- Eclipse下运行hadoop自带的mapreduce程序--wordcount
- 黑马程序员--基于Hadoop新版API的MapReduce程序
- Hadoop初级入门 MapReduce程序执行集群执行
- Hadoop小程序-倒排索引
- 如何使用Python为Hadoop编写一个简单的MapReduce程序
- 用PHP写hadoop的mapreduce程序
- 使用Python实现Hadoop MapReduce程序
- Hadoop学习笔记2--第一个Mapreduce程序
- 用PHP编写Hadoop的MapReduce程序
- Hadoop MapReduce程序中解决第三方jar包问题--终极解决方案
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- 如何在Hadoop上编写MapReduce程序
- 在Hadoop上运行基于RMM中文分词算法的MapReduce程序
- 如何在Hadoop上编写MapReduce程序
- Hadoop示例程序之单词统计MapReduce
- 如何使用Python为Hadoop编写一个简单的MapReduce程序(这个人T字还有好几篇精华的可以看)