簡體   English   中英

將簡單的 synapsesql 實現從 Spark 2.4.8 遷移到 Spark 3.1.2 時需要進行哪些更改?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM