【发布时间】:2021-05-08 02:34:16
【问题描述】:
所以我正在使用 AWS pyspark,并且每天都有千兆字节的数据,这些数据正在更新。我想在胶水数据库的现有表中找到数据的id,如果id已经存在则更新,如果id不存在则插入。
是否可以在 AWS 胶水中做到这一点?
谢谢!
【问题讨论】:
标签: amazon-web-services aws-glue aws-data-pipeline
所以我正在使用 AWS pyspark,并且每天都有千兆字节的数据,这些数据正在更新。我想在胶水数据库的现有表中找到数据的id,如果id已经存在则更新,如果id不存在则插入。
是否可以在 AWS 胶水中做到这一点?
谢谢!
【问题讨论】:
标签: amazon-web-services aws-glue aws-data-pipeline
是的,您可以为此使用 Glue Pyspark 扩展。
data_sink = glue_context.getSink(
path="s3_path",
connection_type="s3",
updateBehavior="UPDATE_IN_DATABASE",
partitionKeys=['partition_column'],
compression="snappy",
enableUpdateCatalog=True,
)
data_sink.setCatalogInfo(
catalogDatabase=database_name,
catalogTableName=table_name,
)
data_sink.setFormat("glueparquet")
data_sink.writeFrame(data_frame)
【讨论】:
您可以在粘合作业中使用 Athena 查询来实现您的逻辑。 https://docs.aws.amazon.com/athena/latest/ug/querying-athena-tables.html
【讨论】: