Каков наилучший способ получить пути всех файлов, расположенных в корзине GCS от Spark в Scala? - PullRequest
0 голосов
/ 21 января 2020

Допустим, у меня есть идентификатор корзины GCS, что-то вроде - gs://uhg802p0on/test_data. Как я могу получить все пути к файлам, расположенным в этой корзине, из Spark в Scala?

1 Ответ

2 голосов
/ 21 января 2020

Используя метод oop FS API listFiles, вы можете сделать что-то вроде этого:

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
}

listFiles с параметром recursive=true перечисляет все файлы рекурсивно в папка gcs.

Если вам нужны только пути без рекурсивности, вы можете использовать метод globStatus.

...