我有一个目录 OUTPUT,其中包含 Map Reduce 作业的输出文件。输出文件是使用 TextOutputFormat 编写的文本文件。
现在我想从输出文件中读取键值对。如何使用 hadoop 中的一些现有类来做到这一点。我可以做到的一种方法如下
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();
}
}
这种方法可行,但会大大增加我的任务,因为我现在需要手动解析每一行中的键值对。我正在寻找更方便的东西,可以直接让我读取某些变量中的键和值。