【发布时间】:2021-11-15 05:06:00
【问题描述】:
目前,我们正在使用下面文章中的步骤从我们的一个 Spark 数据源(delta Lake 表)中完整加载数据,并将它们写入 SQL DW 上的表中。
https://docs.microsoft.com/en-us/azure/databricks/data/data-sources/azure/synapse-analytics 具体来说,写入是使用,
df.write \
.format("com.databricks.spark.sqldw") \
.option("url", "jdbc:sqlserver://<the-rest-of-the-connection-string>") \
.option("forwardSparkAzureStorageCredentials", "true") \
.option("dbTable", "<your-table-name>") \
.option("tempDir", "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net/<your-directory-name>") \
.option("maxStrLength",4000).mode("overwrite").save()
现在,我们的源数据,由于它是一个三角洲湖,是根据 countryid 进行分区的。我们将只加载/刷新 SQL DWH 的某些分区,而不是现在正在发生的完整删除表和加载(因为我们指定“覆盖”)。我尝试添加一个添加附加选项(partitionBy,countryid)到上面的脚本,但这似乎不起作用。
另外上面的文章也没有提到分区。
我该如何解决这个问题?
【问题讨论】:
标签: apache-spark azure-sql-database azure-databricks azure-synapse azure-sqldw