6

当我将 fileinputFormat 设置为 hadoop 输入时。arg[0]+"/*/*/*"说匹配没有文件。

我想要的是从多个文件中读取:

目录1
---目录11
   ---目录111
        --f1.txt
        --f2.txt
---目录12
目录2
---目录21

在Hadoop中可能吗?谢谢!

4

1 回答 1

4

您可以使用 ***** 运算符从多个目录和文件中获取输入。很可能是因为“arg[0]”参数不正确,因此它没有找到文件。

作为替代方案,您也可以使用 InputFormat.addInputPath,或者如果您需要单独的格式或映射器,可以使用MultipleInputs类。

基本添加路径示例

FileInputFormat.addInputPath(job, myInputPath);

这是一个多输入的例子

MultipleInputs.addInputPath(job, inputPath1, TextInputFormat.class, MyMapper.class);
MultipleInputs.addInputPath(job, inputPath2, TextInputFormat.class, MyOtherMapper.class);

This other question也非常相似并且有很好的答案,Hadoop to reduce from multiple input formats

于 2013-05-08T16:46:27.353 回答