apache-spark - 在通过 JDBC 从 pyspark 数据帧插入到外部数据库表时进行重复键更新

标签 apache-spark apache-spark-sql pyspark spark-dataframe pyspark-sql

好吧,我正在使用 PySpark 并且我有一个 Spark 数据框,我使用它将数据插入到 mysql 表中。
url = "jdbc:mysql://hostname/myDB?user=xyz&password=pwd"df.write.jdbc(url=url, table="myTable", mode="append")
我想通过列值和特定数字的总和来更新列值(不在主键中)。

我尝试了不同的模式(追加、覆盖)DataFrameWriter.jdbc() 函数。

我的问题是我们如何像使用 ON DUPLICATE KEY UPDATE 那样更新列值在 mysql 中,同时将 pyspark 数据帧数据插入表中。

最佳答案

一种解决方法是将数据插入到临时表中,然后使用驱动程序执行的 SQL 语句将其迁移到最终表中。您可以使用与您的数据库提供程序相关的任何有效 SQL 语法。

关于apache-spark - 在通过 JDBC 从 pyspark 数据帧插入到外部数据库表时进行重复键更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607177/

相关文章:

scala - Spark Scala数据框udf返回行

scala - Spark数据集解压函数

json - spark读取json中的重复列

scala - 如何删除每组计数低于阈值的记录?

apache-spark - 如何根据基于 Pyspark 中另一列的表达式的评估有条件地替换列中的值?

apache-spark - PySpark 使用 UDF 创建组合

sql - 如何比较两个结构相同的数据框以计算行差异

python - 如何在 spark 中使用 transform python udf 执行 hql 脚本?

python - Spark 中的潜在狄利克雷分配 (LDA)

Python Spark,从执行器访问类静态变量