hadoop多输入,带不同分隔符的textinputformat

bjp0bcyl  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

如何运行多个不同的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器都有一个硬编码的分隔符?

jtw3ybtb

jtw3ybtb1#

如果需要多输入格式,则可以创建自己的输入格式,只需修改分隔符并将其用于输入路径。你可以看看这里。
inputformat类将用所需的分隔符重写createrecordreader()。

相关问题