我每天都有一个带有多个文件夹的存储桶。 它由多个gz.parquet组成,一个桶中约有150k约30GB数据。 我能够读取文件夹名称和gz.parquet内的对象,但我想将100-200 s gz.parquet的批次中的镶木地板读入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 }
它给出有关文件夹名称和其中的镶木地板文件的值。 例如: 如果存储桶名称testbucket具有3个文件夹
tstamp=2019-01-02
tstamp=2019-01-03
tstamp=2019-01-04
tstamp = 2019-01-02包含10万个实木复合地板文件和其他文件夹等等
如何得出一种策略,仅将200s的文件批量加载到数据帧中,以便牢记利用定义的每个执行器进行处理