0

我在 DataBricks 上有 spark 数据框,其列的字符长度 > 10,000。

我需要将其插入 Azure 数据仓库 (ADW) 表,但如果列字符长度超过 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 的列。

4

1 回答 1

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 的列。该选项可能是拆分列数据以摄取,然后在需要时合并列。

于 2019-11-21T17:34:26.423 回答