开发者社区> 问答> 正文

在AWS Glue中附加负载

我需要对S3存储桶执行追加加载。

每天都有新的.gz文件被转储到S3位置,并且粘合爬虫会读取数据并在数据目录中更新它。
Scala AWS Glue作业运行并仅过滤当天的数据。
根据某些规则转换上述过滤数据,并创建分区动态数据帧(即年,月,日)级别。
现在,我需要将此动态数据帧写入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胶合库实现相同的方法?

展开
收起
社区小助手 2018-12-05 14:09:54 1871 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    你的脚本会将新数据文件附加到适当的分区。因此,如果您只处理今天的数据,那么它将在下面创建一个新的数据分区path。例如,如果今天是2018-11-28,它将在s3://some_s3_bucket_location/partitonyear=2018/partitonmonth=11/partitonday=28/文件夹中创建新的数据对象。

    如果您尝试将数据写入现有分区,则Glue将附加新文件,并且不会删除现有对象。但是,如果多次运行作业以处理相同的数据,这可能会导致重复

    2019-07-17 23:18:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《Pulsar 2.8.0 功能特性概述及规划》 立即下载
Flink中的两类新型状态存储 立即下载
基于etcd的超大规模生产级弹性键值存储实践与优化 立即下载