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

  • 如果数据存放在hdfs上,一次性需要读取多个则需要批量读取,可以使用下面代码,先获取到路径下的所有文件名,再循环读取。
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
  • 如果需要使用通配符,匹配得到多个文件路径或者多个文件夹下面的多个文件路径,需要修改上面代码中的两行
//匹配得到某个文件夹下所有文件路径
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);

你可能感兴趣的:(Java读取hdfs文件路径下所有文件)