DBA*_*642 5 python postgresql amazon-web-services pyspark aws-glue
我正在聚合来自 S3 的数据并使用 Glue 将其写入 Postgres。我的问题是我需要在写入之前截断要写入的表。我已经找到了该connection_options: {"preactions":"truncate table <table_name>"}
功能,但似乎只适用于 Redshift。有没有简单的方法,使用粘合连接,只运行一个简单的截断查询?我找到了建议使用自定义 jar 或编写自定义 java 函数的答案,但我真的希望有类似的东西。以下是相关代码行:
dfFinal = df4.drop_duplicates()
datasource2 = DynamicFrame.fromDF(dfFinal, glueContext, "scans")
output = glueContext.write_dynamic_frame.from_jdbc_conf(frame = datasource2, catalog_connection = "MPtest", connection_options = {"preactions":"truncate table scans_staging;","database" : "app", "dbtable" : "scans_staging"})
Run Code Online (Sandbox Code Playgroud)
你已经有一个pyspark dataframe,然后创建pyspark jdbc连接并使用模式overwrite
conn = glueContext.extract_jdbc_conf(connection_name)\nHOST_NAME = conn['host']\nUSERNAME = conn['user']\nPASSWORD = conn['password']\nPORT = conn['port']\nDATABASE = \xe2\x80\x9c<Database name>\xe2\x80\x9d\nURL = conn['url']+"/"+DATABASE\nDRIVER = "org.postgresql.Driver"\n\nfinaldf.write.jdbc(url=URL, dbtable=table, user= USERNAME, password=PASSWORD, driver=DRIVER, mode='overwrite')\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3389 次 |
最近记录: |