【问题标题】:INSERT & UPDATE MySql table using PySpark DataFrames and JDBC使用 PySpark DataFrames 和 JDBC 插入和更新 MySql 表
【发布时间】:2020-10-22 23:24:46
【问题描述】:

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

我已成功使用 SaveMode.Append 插入新数据。有没有办法从 PySpark SQL 更新现有数据并在 MySql 表中插入新数据?

我要插入的代码是:

myDataFrame.write.mode(SaveMode.Append).jdbc(JDBCurl,mySqlTable,connectionProperties)

如果我更改为 SaveMode.Overwrite,它会删除整个表并创建一个新表,我正在寻找类似 MySql 中可用的“ON DUPLICATE KEY UPDATE”的东西

非常感谢您对此的任何帮助。

【问题讨论】:

    标签: mysql apache-spark jdbc pyspark upsert


    【解决方案1】:
    1. Mysql 中创建一个视图为create view <viewName> as select ...<tableName>
    2. 在 mysql 中创建触发器以在插入后使用 -
    3. 进行更新
    CREATE TRIGGER trigger_name
        AFTER INSERT
        ON <viewName> FOR EACH ROW
    BEGIN
        -- statements
        -- INSERT ... ON DUPLICATE KEY UPDATE Statement
    END$$  
    
    

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

    1. 写入数据以查看来自 spark 的 &lt;viewName&gt;

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2011-05-21
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      相关资源
      最近更新 更多