У меня есть ведро с несколькими папками внутри него. Он состоит из нескольких gz.parquet около 150 КБ около 30 ГБ данных в корзине. Я могу прочитать объект как имена папок и внутри gz.parquet, но я хотел прочитать паркетами gz.parquet партиями 100-200 с в фрейм данных spark
def getObjectFilesPath(bucketName: String, prefixName: String): Seq[S3ObjectSummary] = {
val listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix(prefixName)
.withDelimiter("/")
val objectListing: ObjectListing = s3Client.listObjects(listObjectsRequest)
val data = getObjectsSummaries(objectListing)
data }
Он дает значения относительно имени папки и паркетные файлы внутри него. Например: если в тестовом имени корзины есть 3 папки, то
tstamp=2019-01-02
tstamp=2019-01-03
tstamp=2019-01-04
tstamp = 2019-01-02 содержит 100 тыс. Паркетных файлов и других папок и т. Д.
Как получить стратегию загрузки в Пакеты только 200-файлов файлов в кадре данных для обработки с учетом использования каждого исполнителя, определенного