Map Reduce ジョブからの出力ファイルがあるディレクトリ OUTPUT があります。出力ファイルは、TextOutputFormat で記述されたテキスト ファイルです。
ここで、出力ファイルからキーと値のペアを読み取りたいと思います。Hadoop の既存のクラスを使用してこれを行うにはどうすればよいですか。私がそれを行うことができた1つの方法は次のとおりでした
FileSystem fs = FileSystem.get(conf);
FileStatus[] files = fs.globStatus(new Path(OUTPUT + "/part-*"));
for(FileStatus file:files){
if(file.getLen() > 0){
FSDataInputStream in = fs.open(file.getPath());
BufferedReader bin = new BufferedReader(new InputStreamReader(
in));
String s = bin.readLine();
while(s!=null){
System.out.println(s);
s = bin.readLine();
}
in.close();
}
}
このアプローチは機能しますが、個々の行からキーと値のペアを手動で解析する必要があるため、タスクが大幅に増加します。いくつかの変数のキーと値を直接読み取れる、より便利なものを探しています。