HDFS Java lesen alle Dateien im Verzeichnis
/**
* @param filePath
* @param fs
* @return list of absolute file path present in given path
* @throws FileNotFoundException
* @throws IOException
*/
public static List<String> getAllFilePath(Path filePath, FileSystem fs) throws FileNotFoundException, IOException {
List<String> fileList = new ArrayList<String>();
FileStatus[] fileStatus = fs.listStatus(filePath);
for (FileStatus fileStat : fileStatus) {
if (fileStat.isDirectory()) {
fileList.addAll(getAllFilePath(fileStat.getPath(), fs));
} else {
fileList.add(fileStat.getPath().toString());
}
}
return fileList;
}
// Example
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String filePath = "hdfs://localhost:9000/a/dir/here";
Path path = new Path(filePath);
FileSystem fs = path.getFileSystem(conf);
filePath = Tools.getAllFilePath(new Path(filePath), fs).get(0);
System.out.println(Tools.getAllFilePath(new Path(filePath), fs));
Karamolegkos