我在DataBricks上有spark数据框,其中一列的值的字符长度> 10,000。
我需要将其插入到Azure数据仓库(ADW)表中,但是如果列char长度超过4,000,则会收到错误消息。
错误:填充记录读取器缓冲区时遇到意外错误:HadoopSqlException:字符串或二进制数据将被截断。
df.write.format("com.databricks.spark.sqldw") \
.option("url", sqlDwUrl) \
.option("forwardSparkAzureStorageCredentials", "true") \
.option("dbtable", writeTableName) \
.option("tempDir", tempDir) \
.mode("append") \
.option("maxStrLength",4000)\
.save()
要插入字符长度> 10k或20k的列,我需要做些什么。
答案 0 :(得分:0)
当我们今天研究SQL数据仓库的容量限制时
Bytes per Column - (depends on the column data type)
Limit is 8000 for char data types,
4000 for nvarchar, or 2 GB for MAX data types.
因此,今天我们不能提取大于10k的字符列。选项可能是拆分列数据以提取,然后在需要时合并列。