2017-09-01 3 views
0

ジョブでは、2つの異なるディレクトリにある2つの入力ファイルがあります。Hadoop job taking input files from multiple directoriesでは複数のディレクトリからファイルを読み取ることができます。ファイルの名前は同じですが、異なる名前のフォルダにあります。 C1/part-0000 C2/part-0000 マップフェーズでファイルを検出することは可能ですか?以下のような
いくつかの事:各マッパーは、1つの入力分割のために作成されているため 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); } } 複数のディレクトリから入力ファイルを取り出し、マップフェーズでそれぞれを検出する

答えて

0

は、セットアップ段階で

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

それをチェックし、すべての行のマップ方法でそれをチェックしないでください。

関連する問題