如何在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