首页 > 解决方案 > 将 Spark Dataframe 写入 PosgreSQL

问题描述

我正在尝试将 Spark Dataframe 写入预先创建的 PostgreSQL 表。我在工作的 INSERT 过程中收到以下错误:

java.sql.BatchUpdateException: Batch entry 0 INSERT INTO ref.tableA(a,b) VALUES ('Mike',548758) was aborted. Call getNextException to see the cause.

我还尝试捕获错误并调用 getNextException 方法,但日志中仍然存在相同的错误。为了将 Dataframe 写入相应的表,我使用了以下过程:

val jdbcProps = new java.util.Properties()
jdbcProps.setProperty("driver", Config.psqlDriver)
jdbcProps.setProperty("user", Config.psqlUser)
jdbcProps.setProperty("password", Config.psqlPassword)
jdbcProps.setProperty("stringtype", "unspecified")

df.write
  .format("jdbc")
  .mode(SaveMode.Append)
  .jdbc(Config.psqlUrl, tableName, jdbcProps)

包版本: - Spark:1.6.2 - Scala:2.10.6

有任何想法吗 ?

标签: postgresqlscalaapache-sparkdataframejdbc

解决方案


推荐阅读