scala中的hdfs文件列表

Posted

技术标签:

【中文标题】scala中的hdfs文件列表【英文标题】:Hdfs file list in scala 【发布时间】:2016-04-20 07:38:50 【问题描述】:

我正在尝试在 hdfs 目录中查找文件列表,但是当我尝试运行以下代码时,将其预期文件的代码作为输入。

val TestPath2="hdfs://localhost:8020/user/hdfs/QERESULTS1.csv"
val hdfs: org.apache.hadoop.fs.FileSystem = org.apache.hadoop.fs.FileSystem.get(sc.hadoopConfiguration)
      val hadoopPath = new org.apache.hadoop.fs.Path(TestPath1)
      val recursive = true
     // val ri = hdfs.listFiles(hadoopPath, recursive)()
      //println(hdfs.getChildFileSystems)
      //hdfs.get(sc

val ri=hdfs.listFiles(hadoopPath, true)
println(ri)

【问题讨论】:

您收到的错误信息是什么?你能简单介绍一下这个问题吗? 错误的 FS:hdfs://localhost:8020/user/hdfs/QERESULTS1.csv,预期:文件:/// at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java :642) 我正在尝试使用 scala 查找 hdfs 目录中的文件列表 【参考方案1】:

你应该先将你的默认文件系统设置为 hdfs://,我好像你的默认文件系统是 file://

val conf = sc.hadoopConfiguration 
conf.set("fs.defaultFS", "hdfs://some-path")

val hdfs: org.apache.hadoop.fs.FileSystem = org.apache.hadoop.fs.FileSystem.get(conf)

...

【讨论】:

以上是关于scala中的hdfs文件列表的主要内容,如果未能解决你的问题,请参考以下文章

通过scala获取存储在azure数据湖中的文件名列表

使用Java API操作HDFS时,_方法用于获取文件列表?

Pyspark:获取HDFS路径上的文件/目录列表

在本地文件系统(不是HDFS)中使用Scala读取Apache Spark中的文件时如何更改输入块大小[重复]

Scala:基于文件列表处理文件夹中文件的最有效方法

从远程服务器目录列表下载文件并导入 HDFS