Java读取hdfs文件路径下所有文件

2020-05-25  本文已影响0人  依米兒
Configuration conf=new Configuration();
FileSystem hdfs=FileSystem.get(conf);
//这里的路径是在hdfs上的存放路径,但是事先需将hdfs-site.xml文件放在工程的source文件下,这样才能找到hdfs
Path path=new Path("user/my/testData/201912/");
FileStatus[] stats=hdfs.listStatus(path);

for (int i=0; i<stats.length; i++){
  //打印每个文件路径
  System.out.println(stats[i].getPath().toString());
  //读取每个文件
  InputStream inputStream=hdfs.open(stats[i].getPath());
  InputStreamReader inputStreamReader= new InputStreamReader(inputStream);
  BufferedReader reader=new BufferedReader(inputStreamReader);
  String line="";
  while((line=reader.readLine())!=null){
    System.out.println(line);
    //可以在这里对每一条数据进行处理
  }
}
//匹配得到某个文件夹下所有文件路径
Path path=new Path("user/my/testData/201912/*");
FileStatus[] stats=hdfs.globStatus(path);

//匹配得到符合某个条件下的所有文件夹下的文件路径
//例如匹配文件夹名以2019开头的目录下所有文件
Path path=new Path("user/my/testData/2019*/*");
FileStatus[] stats=hdfs.globStatus(path);
上一篇下一篇

猜你喜欢

热点阅读