Spark Dataframe执行UPDATE语句

2024-01-03

Hy guys,

我需要使用 Apache Spark DataFrame 执行 jdbc 操作。 基本上我有一个名为 Measures 的历史 jdbc 表,我必须在其中执行两项操作:

1、设置旧measure记录的endTime有效性属性为当前时间

2.插入一条新的测量记录,设置endTime为9999-12-31

有人可以告诉我如何为第一个操作执行(如果可以的话)更新语句并为第二个操作执行插入吗?

我尝试在第一次操作中使用此语句:

val dfWriter = df.write.mode(SaveMode.Overwrite)
dfWriter.jdbc("jdbc:postgresql:postgres", tableName, prop)

但它不起作用,因为存在重复密钥违规。如果我们可以做更新,我们如何做删除语句?

提前致谢。


我认为 Spark 还没有开箱即用地支持它。您可以使用 foreachRDD() 循环迭代数据帧/RDD,并使用 JDBC api 手动更新/删除表。

这是类似问题的链接:Spark Dataframes UPSERT 到 Postgres 表 https://stackoverflow.com/questions/34643200/spark-dataframes-upsert-to-postgres-table

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark Dataframe执行UPDATE语句 的相关文章

随机推荐