从S3存储桶中批量读取实木复合地板文件到数据框中

时间:2020-04-06 09:11:46

标签: scala apache-spark amazon-s3 apache-spark-sql

我每天都有一个带有多个文件夹的存储桶。 它由多个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的文件批量加载到数据帧中,以便牢记利用定义的每个执行器进行处理

0 个答案:

没有答案