【发布时间】:2019-04-27 03:49:24
【问题描述】:
我正在尝试将数据框从 Spark 写入 SQL 仓库表。此表中的一列具有长度大于字符串 (256) 的默认值的值。根据此链接, https://docs.databricks.com/spark/latest/data-sources/azure/sql-data-warehouse.html “maxStrLength”指定加载到 SQL 仓库时字符串可以使用的最大长度,但是这个选项并不能帮助我从默认值增加 varchar 的长度。你能建议吗?以下是我正在执行的数据框写入语句,如果您需要更多详细信息,请告诉我。
df.write
.format("com.databricks.spark.sqldw")
.option("url", sqlDwUrlSmall).option( "forward_spark_azure_storage_credentials","True").option("tempDir",tempDir).option("maxStrLength ","4000").option("dbTable",sqlschemaName + "." + sqlDwhTbl)
.option("tableOptions", "DISTRIBUTION = ROUND_ROBIN")
.mode("overwrite")
.save()
错误信息:
Underlying SQLException(s): - com.microsoft.sqlserver.jdbc.SQLServerException: HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopSqlException: String or binary data would be truncated. [ErrorCode = 107090] [SQLState = S0001]
【问题讨论】:
标签: apache-spark