当前位置: 首页 > 知识库问答 >
问题:

目录中的Spark Scala列表文件夹

卢杰
2023-03-14

我想使用Scala/Spark列出hdfs目录中的所有文件夹。在Hadoop中,我可以使用命令:Hadoop fs-ls hdfs://sandbox.hortonworks.com/demo/来完成此操作

我用:

val conf = new Configuration()
val fs = FileSystem.get(new URI("hdfs://sandbox.hortonworks.com/"), conf)

val path = new Path("hdfs://sandbox.hortonworks.com/demo/")

val files = fs.listFiles(path, false)
FileSystem.get(sc.hadoopConfiguration).listFiles(new Path("hdfs://sandbox.hortonworks.com/demo/"), true)

PS:我也检查了Thread:Spark iterate HDFS目录,但它对我来说不起作用,因为它似乎不在HDFS目录上搜索,而是只在模式为file//的本地文件系统上搜索。

共有1个答案

谭嘉歆
2023-03-14

我们使用的是Hadoop1.4,它没有listFiles方法,所以我们使用listStatus来获取目录。它没有递归选项,但很容易管理递归查找。

val fs = FileSystem.get(new Configuration())
val status = fs.listStatus(new Path(YOUR_HDFS_PATH))
status.foreach(x=> println(x.getPath))
 类似资料:
  • 问题内容: 以下代码将列出目录中的所有文件 尽管这是非常简单的代码,但可以完成工作。 我现在正在寻找一种仅列出结尾处带有.xml(或.XML)的文件的方法,该怎么办? 问题答案: 使用substr和strrpos查看扩展的简单方法

  • 问题内容: 假设我有一个URL:我想获得目录下所有文件/目录的列表。 我正在使用Java 5。 我可以使用此程序http://www.httrack.com/获得dir的列表,但是使用Java我不知道是否可行。 有谁知道如何用Java获得它?或者,如果Java无法执行,该程序将如何完成工作? 问题答案: 有一些条件: 服务器必须已启用目录列表,以便您查看其内容。 我没有办法(没有API或HTTP动

  • 问题内容: 我有一个具有以下结构的文件夹 我只对rootDir中的xml文件感兴趣。如果我使用JDOM读取XML,则以下代码还将考虑“ testDirectory”中的文件并吐出“内容不允许异常” 如何在使用listFiles方法时排除子目录?以下代码可以工作吗? 问题答案: 使用a 代替,因为它将使您能够访问实际文件,然后包括对

  • 问题内容: 如何在Clojure特定目录中的所有文件中创建一个列表?我必须求助于Java还是Clojure可以本地处理? 问题答案: 使用功能。 用法示例:

  • 问题内容: 因此,我试图使用文件handle.list()方法获取目录中的文件列表,但是即使目录中有文件,它也会返回一个空列表。在我看来,奇怪的是它可以在设备上运行,但不能在桌面上运行。我想我知道问题出在哪里,但是我却不知道如何解决。在方法描述中,它说“在桌面上,类路径上目录的FileType.Internal句柄将返回长度为零的数组。”,但是除此之外没有其他方法,所以你们认为我能做什么? 问题答

  • 问题内容: 我有一个包含约1000个文件名的列表,可在目录及其子目录下进行搜索。有数百个具有超过1,000,000个文件的子目录。以下命令将运行find 1000次: 有更快的方法吗? 问题答案: 如果每行只有一个文件名: (该选项意味着grep搜索给定文件中的所有模式。) 的说明: 在被称为过程subsitution,并且有点类似。这种情况是等效的(但是使用流程替换更整洁,可能更快一些): 调用