首页 > 代码库 > Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题
Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题
本文讲述使用KeyValueTextInputFormat在Hadoop 0.x正常工作、Hadoop 1.2.1失效的解决过程。
环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1
Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机。IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6。
还在折腾Hadoop In Action第4章的代码,书的写法,如下所示。
job.setInputFormat(KeyValueTextInputFormat.class);job.set("key.value.separator.in.input.line", ",");
在hadoop 1.2.1上运行正常。但是,我强迫症又发作了,想把代码改成符合hadoop 1.2.1的范式,如下所示。
configuration.set("key.value.separator.in.input.line", ",");Job job = new Job(configuration, "Patent Job");job.setInputFormatClass(KeyValueTextInputFormat.class);
运行时,从日志上看,数据没按预期切割,而是合并了,如下图所示。
数据源如下图所示
按如下方式修改[1],则结果正常。
// 原语句configuration.set("key.value.separator.in.input.line", ",");// 改成configuration.set("mapreduce.input.keyvaluelinerecordreader.key.value.separator",",");
参考文献
[1]http://stackoverflow.com/questions/12540145/hadoop-use-keyvaluetextinputformat
Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。