jdbc.SQLServerException:将数据导出到Azure SQL Server时找不到数据类型'TEXT'

问题描述 投票:1回答:1

我已经在Azue HDInsight的scala spark 2.1中创建了一个数据框。我正在尝试使用PostgreSQL包将数据帧写入SQL数据仓库。我尝试了以下命令来编写:

df1.write.format("jdbc").option("url", "jdbc:sqlserver://######").option("dbtable", "dbo.Period_ERROR").option("user", "dataiqdw").option("password", "######").save()

但是出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot find data type 'TEXT'.
  at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)

我能够从数据帧中的SQL数据仓库中读取数据,但是仅当我尝试将数据打入表中时,才出现此错误。我的问题与PySpark 2.0 export data to Azure SQL Server

非常相似
sql-server scala jdbc apache-spark-sql hdinsight
1个回答
0
投票

尝试覆盖getJDBCType()方法并提供STRING DataType的实现,因为默认情况下它采用TEXT

override def getJDBCType(dt: DataType): Option[JdbcType] = {
    val answer = dt match {
      case TimestampType => Some(JdbcType("DATETIME", java.sql.Types.TIMESTAMP))
      case StringType => Some(JdbcType("VARCHAR(250)", java.sql.Types.VARCHAR))
      case _ => None
    }
© www.soinside.com 2019 - 2024. All rights reserved.