Я пытаюсь перечислить все объекты в моем ведре 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()) {
...
}
этот жалуется, что путь не существует, а он существует, поэтому я предполагаю, что он не понимает шаблон *.