目录中的Spark Scala列表文件夹

我想使用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)

但它似乎没有在Hadoop目录中查找,因为我找不到我的文件夹/文件.

我也尝试过:

FileSystem.get(sc.hadoopConfiguration).listFiles(new Path("hdfs://sandbox.hortonworks.com/demo/"), true)

但这也无济于事.

你还有其他想法吗?

PS:我也检查了这个帖子:Spark iterate HDFS directory但它对我不起作用,因为它似乎不在hdfs目录上搜索,而只在具有模式文件的本地文件系统上搜索//.

我们使用的是hadoop 1.4,它没有listFiles方法,因此我们使用listStatus来获取目录.它没有递归选项,但很容易管理递归查找.

val fs = FileSystem.get(new Configuration())
val status = fs.listStatus(new Path(YOUR_HDFS_PATH))
status.foreach(x=> println(x.getPath))
https://stackoverflow.com/questions/33394884/spark-scala-list-folders-in-directory

转载注明原文:目录中的Spark Scala列表文件夹