我有一個目錄OUTPUT,其中有來自Map Reduce作業的輸出文件。輸出文件是使用TextOutputFormat編寫的文本文件。Hadoop中的文本閱讀器類
現在我想從輸出文件中讀取鍵值對。我如何使用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();
}
}
這種做法會工作,但增加了我的任務很大,因爲我現在需要手動解析鍵值對出每根線的。我正在尋找更方便的東西,直接讓我讀取一些變量中的鍵和值。
下面是hadoop中讀者類的列表 - http://www.buggybread.com/2015/09/apache-hadoop-list-of-reader-classes.html。這可能有幫助。 –