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

我在hdfs中有一个文件夹,其中有两个子文件夹,每个文件夹有大约30个子文件夹,最后每个子文件夹都包含xml文件。我想列出所有仅提供主文件夹路径的xml文件。在本地,我可以使用apache

commons-io的 FileUtils.listFiles()执行此操作。我已经试过了

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

但是它仅列出了前两个子文件夹,并且没有进一步介绍。有什么办法可以在Hadoop中做到这一点?

回答:

您将需要使用FileSystem对象,并对生成的FileStatus对象执行一些逻辑,以手动将其递归到子目录中。

您还可以使用listStatus(Path,PathFilter)方法将PathFilter应用于仅返回xml文件

hadoop FsShell类具有hadoop fs -lsr命令的示例,这是一个递归ls-

请参见590行附近的源代码(递归步骤在635行触发)

以上是 如何在hadoop hdfs中列出目录及其子目录中的所有文件 的全部内容, 来源链接: utcz.com/qa/434490.html

回到顶部