从 Spark in Scala 获取 GCS 存储桶中所有文件的路径的最佳方法是什么?



假设我有一个GCS存储桶ID,类似于 -gs://uhg802p0on/test_data.如何从 Scala 中的 Spark 获取此存储桶中文件的所有路径?

使用 Hadoop FS APIlistFiles方法,您可以执行以下操作:

import org.apache.hadoop.fs._
val conf = sc.hadoopConfiguration
val gcsBucket = new Path("gs://uhg802p0on/test_data")
val filesIter = gcsBucket.getFileSystem(conf).listFiles(gcsBucket, true)
var files = Seq[Path]()
while (filesIter.hasNext) {
files = files :+ filesIter.next().getPath
}

带有选项recursive=truelistFiles以递归方式列出 GCS 文件夹下的所有文件。

如果您只想要没有递归性的路径,则可以使用globStatus方法。

最新更新