Список объектов в S3 с помощью карты Уайльда / шаблона Star * (Scala / Java) - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь перечислить все объекты в моем ведре S3 звездообразным узором, но кажется, что AWS SKD и Had oop FS не поддерживает его.

сначала я попробовал SDK:

val prefix = "xyz/staging/*/2020/04/05/"
val s3 = AmazonS3ClientBuilder.standard.withRegion(Regions.US_EAST_1).build
val result = s3.listObjectsV2("MyBucket", prefix)
val objects = result.getObjectSummaries
import scala.collection.JavaConversions._
for (os <- objects) {
  System.out.println("* " + os.getKey)
}

Этот подход ничего не возвращает.

А потом я попробовал Had oop FS

import java.net.URI
import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path
import org.apache.hadoop.conf.Configuration

val path = "s3://MyBucket/xyz/staging/*/2020/04/05/"
val fileSystem = FileSystem.get(URI.create(path), ss.sparkContext.hadoopConfiguration)
val it = fileSystem.listFiles(new Path(path), true)
while (it.hasNext()) {
    ...
}

этот жалуется, что путь не существует, а он существует, поэтому я предполагаю, что он не понимает шаблон *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...