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