지도 축소 작업의 출력 파일이있는 곳의 OUTPUT 디렉토리가 있습니다. 출력 파일은 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의 Reader 클래스 목록입니다. - http://www.buggybread.com/2015/09/apache-hadoop-list-of-reader-classes.html. 도움이 될 것입니다. –