Я пытаюсь записать фрейм данных из Spark в таблицу хранилища SQL. Один из столбцов в этой таблице имеет значения, длина которых больше значения по умолчанию для строки (256). По этой ссылке,
https://docs.databricks.com/spark/latest/data-sources/azure/sql-data-warehouse.html
«maxStrLength» указывает максимальную длину, которую можно использовать для строки при загрузке в хранилище SQL, но эта опция не помогает мне увеличить длину varchar по сравнению со значением по умолчанию. Можете ли вы предложить? Ниже приведен мой оператор записи данных, который я выполняю, дайте мне знать, если вам нужна более подробная информация.
df.write
.format("com.databricks.spark.sqldw")
.option("url", sqlDwUrlSmall).option( "forward_spark_azure_storage_credentials","True").option("tempDir",tempDir).option("maxStrLength ","4000").option("dbTable",sqlschemaName + "." + sqlDwhTbl)
.option("tableOptions", "DISTRIBUTION = ROUND_ROBIN")
.mode("overwrite")
.save()
сообщение об ошибке:
Underlying SQLException(s): - com.microsoft.sqlserver.jdbc.SQLServerException: HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopSqlException: String or binary data would be truncated. [ErrorCode = 107090] [SQLState = S0001]