假设我有一个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=true
的listFiles
以递归方式列出 GCS 文件夹下的所有文件。
如果您只想要没有递归性的路径,则可以使用globStatus
方法。