我正在将数据帧写入MySQL数据库。数据库正在抛出java.sql.BatchUpdateException: Duplicate entry 'qwer1234' for key 'transaction_id_UNIQUE'
。
我用来写入数据库的代码是
txnsDF.write.mode("append").jdbc(connProp.getProperty("url"), query, connProp)
现在我无法真正编写一个try catch,因为它不在行级别,并且在org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils类中查看批量1000一次交易。
我可以删除数据库上的约束,但这并没有真正解决我处理来自此类的异常的问题。
我的最后一个选择是,在JdbcUtils中部分重写savePartition方法来处理异常,我真的不想这样做。有什么建议吗?