提问者:小点点

使用PySpark数据帧和JDBC插入和更新MySql表


我正在尝试使用PySpark SQL数据帧和JDBC连接在MySql上插入和更新一些数据。

我成功地使用savemode.append插入了新数据。 有没有一种方法可以从PySpark SQL中更新现有数据并在MySql表中插入新数据?

我要插入的代码是:

mydataframe.write.mode(savemode.append)。jdbc(JDBCurl,mySqlTable,connectionProperties)

如果我更改为savemode.overwrite,它将删除整个表并创建一个新表,我正在寻找类似于MySql中可用的“On DUPLICATE KEY Update”的内容

在这方面的任何帮助都是非常感激的。


共1个答案

匿名用户

  1. MySQL中创建视图为create view; 作为选择...
  2. 在mysql中创建触发器,以便在插入后使用-
  3. 进行更新
CREATE TRIGGER trigger_name
    AFTER INSERT
    ON <viewName> FOR EACH ROW
BEGIN
    -- statements
    -- INSERT ... ON DUPLICATE KEY UPDATE Statement
END$$  

ref-https://www.mysqltutorial.org/mysql-triggers/mysql-after-insert-trigger/