数据块引发错误:截断数据

时间:2020-04-14 15:44:46

标签: sql hadoop databricks azure-sqldw truncated

每当我尝试在DW上保存特定的DataFrame时,我都会收到消息:

错误:调用o692.save时发生错误。 :com.databricks.spark.sqldw.SqlDWSideException:SQL DW无法执行连接器产生的JDBC查询。 底层SQLException: -com.microsoft.sqlserver.jdbc.SQLServerException:HdfsBridge :: recordReaderFillBuffer-遇到意外错误 填充记录读取器缓冲区:HadoopSqlException:字符串或二进制 数据将被截断。 [ErrorCode = 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()

这里会发生什么?

1 个答案:

答案 0 :(得分:0)

问题出在最终文件上。一个特定的单元格包含多行,导致此截断问题。