aws glue s3 目标 - 创建 20 个文件的分区

aws glue s3 target - creating partitions of 20 files

默认情况下,当我也从 dynamo DB 源和目标是 s3 读取两条三条记录时,即使这样它也会在目标中创建 20 个分区文件,只有两个有数据,其他是空文件。

我们如何控制这个文件的创建?

或者限制每个文件中的记录数?

您可以通过更改分区数量来控制文件数量。首先,您需要将 DynamicFrame 更改为 spark DataFrame,然后更改分区数,最后返回 DynamicFrame:

dataframe = DynamicFrame.toDF(applymapping3).repartition(2) #where 2 is the number of files/partitions.
dynamicframe = DynamicFrame.fromDF(dataframe, glueContext, "dynamicframe")

类似的方法,如果你想限制记录数,你可以这样做:

n_partitions = int(math.ceil(dataframe.count() / float(file_size))) #where file_size can be 500 records.
dataframe1 = DynamicFrame.toDF(dataframe).repartition(n_partitions)