gpt4 book ai didi

java - 如何在hadoop hdfs中列出目录及其子目录中的所有文件

转载 作者:IT老高 更新时间:2023-10-28 20:48:41 28 4
gpt4 key购买 nike

我在 hdfs 中有一个文件夹,其中有两个子文件夹,每个子文件夹大约有 30 个子文件夹,最后,每个子文件夹都包含 xml 文件。我想列出所有 xml 文件,只给出主文件夹的路径。在本地,我可以使用 apache commons-io's FileUtils.listFiles()。这个我试过了

FileStatus[] status = fs.listStatus( new Path( args[ 0 ] ) );

但它只列出了前两个子文件夹,并没有更进一步。有没有办法在hadoop中做到这一点?

最佳答案

如果您使用 hadoop 2.* API,还有更优雅的解决方案:

    Configuration conf = getConf();
Job job = Job.getInstance(conf);
FileSystem fs = FileSystem.get(conf);

//the second boolean parameter here sets the recursion to true
RemoteIterator<LocatedFileStatus> fileStatusListIterator = fs.listFiles(
new Path("path/to/lib"), true);
while(fileStatusListIterator.hasNext()){
LocatedFileStatus fileStatus = fileStatusListIterator.next();
//do stuff with the file like ...
job.addFileToClassPath(fileStatus.getPath());
}

关于java - 如何在hadoop hdfs中列出目录及其子目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342400/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com