我一直在玩Hadoop,现在我正试图想办法从目录中读取多个文件。我读取文件时,下面的代码工作正常。从hdfs读取多个文件并从每个文件中读取每一行的最佳方法是什么。
try {
Path pt = new Path("hdfs://profile/generate/work/output/errors.txt");
FileSystem fs = FileSystem.get(job.getConfiguration());
BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt)));
String line;
line=br.readLine();
while (line !=null){
//sendemail
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:1)
只需添加一个FileStatus [] status = fs.listStatus(新路径(路径))并在读取一个hdfs文件之前为你的状态创建一个for
FileStatus [] status = fs.listStatus(new Path(“path”));
for (int i=0;i<status.length;i++){
//afficher le contenu d'un fichier hdfs
BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(status[i].getPath())));
String line;
line=br.readLine();
while (line != null){
System.out.println(line);
line=br.readLine();
}
}