【发布时间】:2016-01-28 10:51:56
【问题描述】:
我想使用 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 目录上搜索,而是只在具有架构文件的本地文件系统上搜索//。
【问题讨论】:
-
这个解决方案帮助我解决了一个错误。我需要编写
val fs = FileSystem.get(new URI("s3://mybucket/mykey"), conf)之类的代码来获取正确的文件系统供 spark 使用。默认文件系统用于 hdfs。
标签: scala hadoop apache-spark