hadoop从多个目录获取输入文件并在Map阶段检测每个文件

hsgswve4  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(315)

在一个作业中有两个输入文件,它们位于两个不同的目录中,在hadoop作业中,从多个目录中获取输入文件,我们可以从多个目录中读取文件。这些文件具有相同的名称,但它们位于不同的名称文件夹中。 C1/part-0000 C2/part-0000 是否可能在Map阶段检测文件?
比如: public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { if (First file) { ... context.write(outputKey, outputValue); } } else { //Second file ... context.write(outputKey, outputValue); } }

eni9jsuy

eni9jsuy1#

在安装阶段检查

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

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

相关问题