如何运行多个不同的Map器类(使用 MultipleInputs
),都使用相同的输入格式,但使用不同的输入分隔符?
multipleinput允许您添加多个Map器,每个Map器都有自己的输入格式:
MultipleInputs.addInputPath(Job job, Path path,
Class<? extends InputFormat> inputFormatClass,
Class<? extends Mapper> mapperClass)
中的输入分隔符 TextInputFormat
通过设置配置键来配置输入 textinputformat.record.delimiter
在作业配置中。汉迪!
然而,这意味着所有的Map绘制者都使用 MultipleInput.addInputPath(?, TextInputFormat.class, ?)
必须共享相同的分隔符,如 textinputformat.record.delimiter
配置键。
有没有办法绕过这个问题,而不必编译单独的inputformat类(扩展 TextInputFormat
)每个Map器都有一个硬编码的分隔符?
1条答案
按热度按时间jtw3ybtb1#
如果需要多输入格式,则可以创建自己的输入格式,只需修改分隔符并将其用于输入路径。你可以看看这里。
inputformat类将用所需的分隔符重写createrecordreader()。