[英]RDS Table update using Dynamic Frame in AWS Glue
我有一個粘合工作,因為我將數據從 csv 插入到 postgresql 表。 現在我需要更新 postgresql 數據庫表中的一行。 我已經這樣做了,但是所需的行作為表中的一個新條目出現,而不是更新現有的。 我怎樣才能做到這一點? 請幫忙...
Glue 目前不支持覆蓋模式。 您需要將DynamicFrame
轉換為DataFrame
,然后使用mode = overwrite
寫入,如下所示:
dynamic_frame.toDF()
.write
.mode("overwrite")
Spark 尚不支持更新記錄。 您只能覆蓋(刪除現有記錄並添加新記錄)或追加(與現有記錄一起添加新記錄)。 但是,如果您想更新特定行,您可以使用 python 庫 pg8000。 膠水版本 2.0 和 python 版本 3 的步驟如下:
下載並解壓 pg8000、asn1crypto 和 scramp tar 文件,然后將它們全部壓縮為一個。
將文件上傳到 s3 存儲桶
在python庫路徑中,添加壓縮后的pg8000文件的路徑。 例如:s3://bucketname/foldername/pg8000-1.19.2.zip
僅導入 pg8000.native 並使用以下代碼直接連接到數據庫。
導入 ssl
導入 pg8000.native
conn = pg8000.native.Connection(database="database", host="xxxxxxrds.amazonaws.com", port=xxxx, user="user", password="password",ssl_context=ssl._create_unverified_context())
insert_query = "您通常會在 postgresql 中編寫的更新查詢"
conn.run(insert_query)
conn.run(“提交”)
conn.close()
PS:您還可以使用 python '.format' 使您的查詢通用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.