开发者学堂课程【Hadoop 分布式计算框架 MapReduc:KeyValueTextInputFormat 案例实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/94/detail/1504
KeyValueTextInputFormat(案例分析)
目录:
一、特性
二、使用案例
三、需求分析
一、特性
每一行均为一条记录,被分隔符分割为 key,value。 可以通过在驱动类中设置confset(KeyValueLineRecordReader:KEY_ _VALUE_ SEPERATOR, "t"),来设定分隔符。默认分隔符是 tab (\t)。以下是一个示例,输入是一个包含4条记录的分片。其中一>表示一个(水平方向的)制表符。
line1一>Rich learning form
line2一-> Intell igent learning engine
line3一->Learning more conven ient
line4一>From the real demand for more close to the enterprise
每条记录表示为以下键值对:
(line1,Rich learning forn}
(line2, Intelligent learn ing engine)
(line3, Learning more convenient)
(line4,From the real denand for more close to the enterprise)
此时的键是每行排在制表符之前的 Text 序列。
让天下没方难学的技术。
二、使用案例
1.需求。
统计输入文件中每一行的第一个单词相同的行数。。
(1)输入数据。
banzhang ni haou
xihuan hadoop banzhang-banzhang ni haor
xihuan hadoop banzhange
(2)期望结果数据. .
banzhang 2
xihuan 2
三、需求分析
1、需求:统计输入文件中每一行的第一个单词相同的行数。
2、输入数据
banzhang ni hao
xihuan hadoop banzhang
banzhang ni hao
xihuan hadoop banzhang
3、期望输出数据
banzhang 2
xihuan 2
4、Map 阶段
banzhang ni hao
( 1 )设置 key 和 value
<banzhang,1>
( 2 )写出
5、Reduce 阶段
<banzhang,1>
<banzhang,1>
( 1 )汇总
<banzhang,2>
(2)写出
6、Driver
//( 1 )设置切割符
conf . set (KeyValueLineRecordRea der . KEY VALUE SEPERATOR, " ") ;
// ( 2 )设置输入格式
job.setInputFormatClass
(
KeyValue TextInput Format.class);