pyspark 在AWS Glue Notebook中加载之前截断表

czq61nw1  于 2023-11-16  发布在  Spark
关注(0)|答案(1)|浏览(197)

我已经发现这是可能的,但是对于红移,怎么可能用Spark或胶水目录来做不同的事情呢?
我在使用AWS Glue笔记本加载表之前尝试截断表时遇到了一个问题。

tsm1rwdh

tsm1rwdh1#

我分享了在将表加载到AWS Glue notebook之前截断表的代码片段。此代码有助于确保在加载新数据之前清除目标表中的任何现有数据。

  1. sdf =spark.sql(sql)
  2. conf = glueContext.extract_jdbc_conf("conn-dlh-datos-fed")
  3. (sdf.write
  4. .mode('overwrite')
  5. .format("jdbc")
  6. .option("url", conf['url'])
  7. .option("connschema", "<db>")
  8. .option("user", conf['user'])
  9. .option("dbtable", "<schema>.<table>")
  10. .option('truncate','true')
  11. .option("password", conf['password'])
  12. .save()
  13. )

字符串
或者可替代地:

  1. sdf=spark.sql(sql)
  2. conf = glueContext.extract_jdbc_conf("conn-dlh-datos-fed")
  3. (sdf.write
  4. .mode('overwrite')
  5. .format("jdbc")
  6. .option("url", f"{conf['url']}/{conf['url'].split('//')[1].split('.')[0]}?user={conf['user']}&password={conf['password']}&ReadOnly=false")
  7. .option("dbtable", "<schema>.<table>")
  8. .option('truncate','true')
  9. .save()
  10. )


请注意,我在拆分url conf时得到的db name
完整的URL是:'jdbc:postgresql://<db>.xxx.us-east-1.rds.amazonaws.com:5432/<db>?user=<user>&password=<pass>&ReadOnly=false'
原来的解决方案可以找到这个:stackoverflow

展开查看全部

相关问题