File Hadoop作业从多个目录获取输入文件,并在映射阶段检测每个目录

File Hadoop作业从多个目录获取输入文件,并在映射阶段检测每个目录,file,hadoop,input,mapreduce,File,Hadoop,Input,Mapreduce,在一个作业中有两个输入文件,它们位于两个不同的目录中,在中,我们可以从多个目录中读取文件。这些文件具有相同的名称,但它们位于不同的名称文件夹中。 C1/第0000部分 C2/第0000部分 是否可能在映射阶段检测文件? 比如: 公共void映射(可长写键、文本值、上下文) 抛出IOException、InterruptedException{ 如果(第一个文件){ ... write(outputKey,outputValue); } }否则{ //第二档 ... write(output

在一个作业中有两个输入文件,它们位于两个不同的目录中,在中,我们可以从多个目录中读取文件。这些文件具有相同的名称,但它们位于不同的名称文件夹中。

C1/第0000部分
C2/第0000部分
是否可能在映射阶段检测文件?
比如:

公共void映射(可长写键、文本值、上下文)
抛出IOException、InterruptedException{
如果(第一个文件){
...
write(outputKey,outputValue);
}
}否则{
//第二档
...
write(outputKey,outputValue);
}
}

在设置阶段检查它

@Override
protected void setup(Context context) throws IOException, InterruptedException {
    FileSplit split = (FileSplit) context.getInputSplit();
    Path path = split.getPath();
    String name = path.getName();
    ...

不要在map方法中为每一行检查它,因为每个映射器都是为一个输入拆分创建的

在安装阶段检查它

@Override
protected void setup(Context context) throws IOException, InterruptedException {
    FileSplit split = (FileSplit) context.getInputSplit();
    Path path = split.getPath();
    String name = path.getName();
    ...
不要在map方法中为每一行检查它,因为每个映射器都是为一个输入拆分创建的