每当我试图在dw上保存一个特定的Dataframe时,我都会收到一条消息:
错误:调用o692.save时出错:com.databricks.spark.sqldw.sqldwsideexception:sql dw无法执行连接器生成的jdbc查询。基础sqlexception:-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()
这里会发生什么?
1条答案
按热度按时间vh0rcniy1#
问题在最终文件中。一个特定的单元包含多行,这导致了这个截断问题。