我需要对S3存储桶执行附加加载。
现在,我需要将此动态数据帧写入具有所有前一天分区的S3存储桶中。实际上,我只需要向S3存储桶写入一个分区。目前,我正在使用下面的代码将数据写入S3存储桶。
// Write it out in Parquet for ERROR severity
glueContext.getSinkWithFormat(
connectionType = "s3",
options = JsonOptions(Map("path" -> "s3://some s3 bucket location",
"partitionKeys" -> Seq("partitonyear","partitonmonth","partitonday"))),
format = "parquet").writeDynamicFrame(DynamicFrame(dynamicDataframeToWrite.toDF().coalesce(maxExecutors), glueContext))
我不确定上面的代码是否会执行附加加载。是否可以通过AWS胶库实现相同的加载?
答案 0 :(得分:0)
您的脚本会将新的数据文件附加到适当的分区。因此,如果仅处理今天的数据,则它将在path
下创建一个新的数据分区。例如,如果今天是2018-11-28,它将在s3://some_s3_bucket_location/partitonyear=2018/partitonmonth=11/partitonday=28/
文件夹中创建新的数据对象。
如果您尝试将数据写入现有分区,则Glue将追加新文件,并且不会删除现有对象。但是,如果多次运行作业以处理相同的数据,则可能导致重复。