我将fileinputFormat设置为hadoop输入。
arg[0]+"/*/*/*"
表示匹配无文件。
我想要的是从多个文件中读取:
Directory1 ---Directory11 ---Directory111 --f1.txt --f2.txt ---Directory12 Directory2 ---Directory21
在Hadoop中有可能吗? 谢谢!
答案 0 :(得分:4)
您可以使用*****运算符从多个目录和文件中获取输入。很可能是因为“arg [0]”参数不正确,因此它找不到文件。
作为替代方案,您也可以使用InputFormat.addInputPath,或者如果您需要单独的格式或映射器,则可以使用MultipleInputs类。
基本添加路径的示例
FileInputFormat.addInputPath(job, myInputPath);
以下是MultipleInputs
的示例MultipleInputs.addInputPath(job, inputPath1, TextInputFormat.class, MyMapper.class);
MultipleInputs.addInputPath(job, inputPath2, TextInputFormat.class, MyOtherMapper.class);
这个问题也非常相似,并且有很好的答案Hadoop to reduce from multiple input formats。