Databricks写入Synapse改变了Synapse表列的数据类型



我已经创建了Synapse表,列数据类型-[Comments] [varchar](2000) NULL

当我使用Databricks spark代码写入Synapse时,我看到Synapse表列的数据类型更改为[Comments] [nvarchar](256) NULL。我在Databricks数据框架上的数据类型为字符串。

Databricks Spark code-

df.write 
.format("com.databricks.spark.sqldw") 
.option("url",  "jdbc:sqlserver://<>") 
.option("user", "myuser") 
.option("password", "***") 
.option("forwardSparkAzureStorageCredentials", "true") 
.option("dbTable", table_name) 
.option("tempDir", "wasbs://<container>@<storageAccount>.blob.core.windows.net/<path>) 
.mode("overwrite")  
.save()

我会在代码中添加以下选项:

.option("maxStrLength", 2000)

或者,如果您确定列名和数据类型不会随着时间的推移而改变,我会手动删除并创建具有您想要的类型的表,然后将模式更改为"追加",然后添加预操作来截断表:

.option("preActions", "truncate table "+table_name) 
.mode("append")