![](/img/trans.png)
[英]spark.write.synapsesql options with Azure Synapse Spark Pool
[英]What changes are required when moving simple synapsesql implementation from Spark 2.4.8 to Spark 3.1.2?
我有一個簡單的 .write.synapsesql() 方法實現(代碼如下所示),它在 Spark 2.4.8 中有效,但在 Spark 3.1.2 中無效( 此處為文檔/示例)。 使用的數據是一個簡單的筆記本創建的 foobar 類型表。 在網上搜索有關錯誤的關鍵短語並沒有為我提供任何新信息。 3.1.2錯誤的原因是什么?
Spark 2.4.8 版本(按需要運行):
val df = spark.sql("SELECT * FROM TEST_TABLE")
df.write.synapsesql("my_local_db_name.schema_name.test_table", Constants.INTERNAL, None)
Spark 3.1.2版本(額外方法同文檔,也可以省略,結果類似):
val df = spark.sql("SELECT * FROM TEST_TABLE")
df.write.synapsesql("my_local_db_name.schema_name.test_table", Constants.INTERNAL, None,
Some(callBackFunctionToReceivePostWriteMetrics))
由此產生的錯誤(僅在 3.1.2 中)是:
WriteFailureCause -> java.lang.IllegalArgumentException: Failed to derive `https` scheme based staging location URL for SQL COPY-INTO}
正如問題中的文檔所述,請確保您正確設置了選項
val writeOptionsWithAADAuth:Map[String, String] = Map(Constants.SERVER -> "<dedicated-pool-sql-server-name>.sql.azuresynapse.net",
Constants.TEMP_FOLDER -> "abfss://<storage_container_name>@<storage_account_name>.dfs.core.windows.net/<some_temp_folder>")
並在 your.write 語句中包括選項,如下所示:
df.write.options(writeOptionsWithAADAuth).synapsesql(...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.