SparkSQL / JDBC错误com.microsoft.sqlserver.jdbc.SQLServerException:列,参数或变量#7:找不到数据类型BLOB

时间:2018-12-27 23:51:39

标签: scala apache-spark jdbc apache-spark-sql sql-server-2017

将DataFrame保存到具有VARBINARY列的表中会引发错误:

  

com.microsoft.sqlserver.jdbc.SQLServerException:列,参数或   变量#7:找不到数据类型BLOB

如果我尝试在VARBINARY选项中使用createTableColumnTypes,则会显示“不支持VARBINARY”。

解决方法是:

  1. 将TARGET模式更改为使用VARCHAR
  2. 添加.option("createTableColumnTypes", "Col1 varchar(500), Col2) varchar(500)")

尽管这种解决方法可以让我们继续保存其余数据,但是对于这2列,源表(从中读取数据)的实际二进制数据没有正确保存-我们看到的是NULL数据。

我们正在使用MS SQL Server 2017 JDBC驱动程序和Spark 2.3.2。

感谢您提供任何帮助,可以正确解决此问题的解决方法,以确保我们不会丢失数据。

0 个答案:

没有答案