我在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
非常相似答案 0 :(得分: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
}