Ошибка выброса блоков данных: усечение данных - PullRequest
0 голосов
/ 14 апреля 2020

Всякий раз, когда я пытаюсь сохранить указанный c DataFrame в DW, я получаю сообщение:

ОШИБКА: при вызове o692.save произошла ошибка. : com.databricks.spark.sqldw.SqlDWSideException: SQL DW не удалось выполнить запрос JDB C, созданный соединителем. Базовые исключения SQLException: - com.microsoft.sqlserver.jdb c .SQLServerException: HdfsBridge :: recordReaderFillBuffer - Обнаружена непредвиденная ошибка при заполнении буфера чтения записей: HadoopSqlException: строка или двоичные данные будут усечены. [ErrorCode = 107090] [SQLState = S0001]

Я проверил размер строк в моем CSV-файле. У большего есть 38 символов.

Это мой метод сохранения / записи (работал для других фреймов данных):

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()

Что здесь может происходить?

...