我想编写一个可以处理文本和 zip 文件的 MapReduce 应用程序。为此,我想使用不同的输入格式,一种用于文本,另一种用于 zip。可以这样做吗?
从@ChrisWhite的答案延伸一点,你需要的是使用自定义InputFormat
and RecordReader
与 ZIP 文件一起使用。你可以在这里找到ZipFileInputFormat 示例 https://github.com/cotdp/com-cotdp-hadoop/blob/master/src/main/java/com/cotdp/hadoop/ZipFileInputFormat.java和这里示例 ZipFileRecordReader https://github.com/cotdp/com-cotdp-hadoop/blob/master/src/main/java/com/cotdp/hadoop/ZipFileRecordReader.java.
鉴于此,正如克里斯建议你应该使用MultipleInputs
,如果您不需要为每种类型的文件定制映射器,我将这样做:
MultipleInputs.addInputPath(job, new Path("/path/to/zip"), ZipFileInputFormat.class);
MultipleInputs.addInputPath(job, new Path("/path/to/txt"), TextInputFormat.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)