PySpark JdbcUtils Catalyst和JDBC类型之间的关系

时间:2018-03-12 13:40:33

标签: jdbc pyspark

在PySpark中将Dataframe作为Mysql表写入时,我遇到java.sql.BatchUpdateException: Data truncation: Data too long for column错误,这意味着数据超过了Mysql TEXT类型允许的最大值。

JdbcUtils.getCommonJDBCType method所示,TEXT是Catalyst StringType的默认JDBC类型:

def getCommonJDBCType(dt: DataType): Option[JdbcType] = {
    dt match {
      ...
      case StringType => Option(JdbcType("TEXT", java.sql.Types.CLOB))
      ...
    }
  }

我想知道,有没有办法使用Dataframe的write.jdbc方法手动定义Catalyst Type(StringType)和JDBC类型(LONGTEXT)之间的关系?

0 个答案:

没有答案