scala读取hdfs多个目录的文件信息
时间: 2023-07-30 18:05:48 浏览: 94
hdfs读取文件
可以使用 Hadoop 的 API 来读取 HDFS 中的多个目录的文件信息。以下是一个 Scala 代码示例:
```scala
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
val hadoopConf = new Configuration()
val hdfs = FileSystem.get(hadoopConf)
val dirsToRead = Seq("/path/to/dir1", "/path/to/dir2", "/path/to/dir3")
val files = dirsToRead.flatMap { dir =>
val path = new Path(dir)
if (hdfs.exists(path) && hdfs.isDirectory(path)) {
hdfs.listStatus(path).map(_.getPath.toString)
} else {
Seq.empty[String]
}
}
```
这段代码首先创建了一个 Hadoop 配置实例和一个 HDFS 客户端实例。然后,它定义了一个包含多个 HDFS 目录路径的列表 `dirsToRead`。接下来,它遍历每个目录,并检查它们是否存在并且是目录。如果是,就列出该目录下的所有文件,并将它们的路径添加到 `files` 列表中。最终,`files` 列表将包含多个目录中所有文件的路径。
阅读全文