如何使用java从hdfs读取多个文件?

时间:2015-08-10 15:00:00

标签: java hadoop

我一直在玩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();
    }

1 个答案:

答案 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();
        }
    }