问题描述
所以我正在使用 AWS pyspark,并且每天都有数千兆字节的数据,而且这些数据还在不断更新中。我想在glue数据库的现有表中找到数据的id,如果id已经存在就更新,如果id不存在则插入。
是否可以用 AWS 胶水来做?
谢谢!
解决方法
您可以在粘合作业中使用 Athena 查询来实现您的逻辑。 https://docs.aws.amazon.com/athena/latest/ug/querying-athena-tables.html
,是的,您可以为此使用 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)