【发布时间】:2020-07-27 10:04:16
【问题描述】:
每当我尝试在 DW 上保存特定的 DataFrame 时,我都会收到以下消息:
错误:调用 o692.save 时出错。 :com.databricks.spark.sqldw.SqlDWSideException:SQL DW 无法执行连接器生成的 JDBC 查询。 基础 SQLException(s): - com.microsoft.sqlserver.jdbc.SQLServerException: HdfsBridge::recordReaderFillBuffer - 遇到意外错误 填充记录读取器缓冲区:HadoopSqlException:字符串或二进制 数据将被截断。 [错误代码 = 107090] [SQLState = S0001]
我检查了 csv 文件中字符串的大小。较大的有 38 个字符。
这是我的保存/写入方法(适用于其他 DataFrame):
df.write\
.format('com.databricks.spark.sqldw') \
.option('url', conn_string_dw) \
.option('maxStrLength', '4000') \
.option('forwardSparkAzureStorageCredentials', 'true') \
.option('dbTable', db_table_name) \
.option('tempDir', dw_temporary_path_url) \
.option('truncate', 'False')\
.mode('append')\
.save()
这里会发生什么?
【问题讨论】:
-
请问您的目标表规格是什么?我的第一个检查是数据文件与列数据类型匹配。
标签: sql hadoop databricks azure-sqldw truncated