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(使用前将#替换为@)