我正在使用以下方法将Azure Databricks的数据帧写入sql数据仓库中
res.write \
.format("jdbc") \
.option("url", url) \
.option("dbtable", table) \
.option("user", user) \
.option("password", password) \
.save()
与此有关,我遇到了一个错误Column 'username' has a data type that cannot participate in a columnstore index.
如何完全消除列存储,或更改列的数据类型以适合列存储?
我有几列将被视为整数,而另一些将被视为varchar。
答案 0 :(得分:3)
将此选项子句添加到您的write语句中。它代替了CREATE TABLE(AS)语句的with()子句:
.option ("tableOptions","heap,distribution=MY_DISTRIBUTION")
参考在这里:
https://docs.databricks.com/spark/latest/data-sources/azure/sql-data-warehouse.html
根据以下指导为MY_DISTRIBUTION选择一个值:
https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-distribute