針對適用於 Scala 的 Databricks Connect 進行疑難解答

注意

本文涵蓋適用於 Databricks Runtime 13.3 LTS 以上版本的 Databricks Connect。

本文提供適用於 Scala 的 Databricks Connect 疑難解答資訊。 Databricks Connect 讓您能將熱門的 IDE、筆記型電腦伺服器及自訂應用程式連接到 Azure Databricks 叢集。 請參閱 Databricks Connect。 本文Python版本請參見 Troubleshooting Databricks Connect for Python。

錯誤:StatusCode.UNAVAILABLE、StatusCode.UNKNOWN、DNS 解析失敗,或狀態為 500 的 Received HTTP2 標頭

問題:當您嘗試使用 Databricks Connect 執行程式代碼時,會收到包含 StatusCode.UNAVAILABLE、StatusCode.UNKNOWN、DNS resolution failed或 Received http2 header with status: 500等字串的錯誤訊息。

原因:Databricks Connect 無法連線到您的叢集。

解決方案:

  • 請檢查以確定您的工作區實例名稱正確無誤。 如果您使用環境變數,請檢查以確定本機開發計算機上有可用的相關環境變數並正確無誤。
  • 請檢查以確定您的叢集標識碼正確無誤。 如果您使用環境變數,請檢查以確定本機開發計算機上有可用的相關環境變數並正確無誤。
  • 請檢查以確定您的叢集具有與 Databricks Connect 相容的正確自定義叢集版本。

連接 Apache Spark 伺服器的錯誤

問題:

嘗試連接開放原始碼 Apache Spark 伺服器(例如本地運行的 Apache Spark 3.5.x Spark Connect 伺服器,位於 sc://localhost)會導致錯誤,例如找不到類別、API 行為不符或序列化失敗。

原因:

Databricks Connect 是基於 Databricks 執行環境建置,其相依性與 開放原始碼 Apache Spark 不同。 特別是 Databricks Connect 15.4 和 16.4 與 Apache Spark 3.5.x 不相容,因為它們使用了不同版本的函 json4s 式庫。

解決方案:

建議使用 Databricks 叢集或無伺服器運算,取代 開放原始碼 Apache Spark 伺服器。 請參閱 Databricks Connect 的計算組態。

Windows 上的檔名、目錄名稱或磁碟區標籤語法都不正確

Issue:你在 Windows 上使用 Databricks Connect 並看到:

The filename, directory name, or volume label syntax is incorrect.

原因:Databricks Connect 已安裝到路徑中包含 空格的目錄,。

解決方案:您可以藉由安裝至不含空格的目錄路徑,或使用 簡短名稱格式設定路徑,來解決此問題。

錯誤:無法初始化 MemoryUtil

問題:當您嘗試建置 DatabricksSession時,它會傳回錯誤 Failed to initialize MemoryUtil。

Cause:Apache Arrow 是 Databricks Connect 用戶端的相依,並嘗試利用反射存取一個私有Java方法,但由於安全考量,Java 17 預設會阻擋該方法。

解決方案:

在 JVM 初始化之前設定下列 JVM 欄位:

--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED

欲了解更多資訊,請參閱 Apache Arrow Java 相容性。

小提示

要在 IntelliJ 中設定Java選項,請參見 IntelliJ 執行/除錯配置。