9

嗯,我使用PySpark,並且我有一個Spark數據框,使用它將數據插入到一個mysql表中。在通過JDBC從pyspark數據框插入到外部數據庫表時插入重複鍵更新

url = "jdbc:mysql://hostname/myDB?user=xyz&password=pwd"

df.write.jdbc(url=url, table="myTable", mode="append")

我想更新列值(其不是在主鍵)由它的列值之和的特定數目。

我試過用不同的模式(追加,覆蓋)DataFrameWriter.jdbc()函數。

我的問題是,我們如何更新列值,就像我們在mysql中使用ON DUPLICATE KEY UPDATE那樣更新列值,同時將pyspark數據幀數據插入表中。

+1

您是否找到解決方案? – blumonkey

回答

0

解決方法是將數據插入臨時表中,然後使用由驅動程序執行的SQL語句將其遷移到最終表中。您可以使用與數據庫提供者相關的任何有效的SQL語法。