Databricks Connect Python 版的故障排除

注意

本文涵蓋適用於 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。

本文提供 Databricks Connect for Python 的故障排除資訊。 Databricks Connect 讓您能將熱門的 IDE、筆記型電腦伺服器及自訂應用程式連接到 Azure Databricks 叢集。 請參閱 Databricks Connect。 如需此文章的 Scala 版本,請參閱 Databricks Connect Scala 疑難解答

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

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

可能的原因:D atabricks Connect 無法連線到您的叢集。

建議的解決方案

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

Python 版本不匹配

請確認你本地使用的 Python 版本與叢集上的版本至少有相同的次要版本(例如,3.10.113.10.10 可以,3.103.9 則不行)。 如需支援的版本,請參閱 版本支援矩陣

如果你本地安裝了多個 Python 版本,請透過設定 PYSPARK_PYTHON 環境變數(例如 PYSPARK_PYTHON=python3)來確保 Databricks Connect 使用的是正確的版本。

PySpark 安裝衝突

套件 databricks-connect 與 PySpark 衝突。 同時安裝兩個會讓 Python 初始化 Spark context 時出錯。 這可以透過數種方式來顯示,包括「數據流損毀」或「找不到類別」錯誤。 如果你的Python環境安裝了 pyspark,請確保在安裝 databricks-connect 前已卸載。 卸載 PySpark 之後,請務必完全重新安裝 Databricks Connect 套件:

pip3 uninstall pyspark
pip3 uninstall databricks-connect
pip3 install --upgrade "databricks-connect==14.0.*"  # or X.Y.* to match your specific cluster version.

Databricks Connect 和 PySpark 是互斥的,但你可以利用Python虛擬環境遠端開發,IDE 裡用 databricks-connect,終端機用 pyspark 進行本地測試。 不過,Databricks 建議在所有測試中使用 Databricks Connect for Python 搭配 無伺服器計算,原因如下:

  • Databricks Runtime,因此 databricks-connect,包含 OSS pyspark中無法使用的功能。
  • 使用 databricks-connect 和無伺服器進行測試比在本機使用 pyspark 測試更快。
  • Unity 目錄整合無法在 pyspark中使用,因此當您在本機使用 pyspark 進行測試時,將不會強制執行任何許可權。
  • 若要使用外部相依性(例如 Databricks 計算)來進行端對端測試,最好使用整合測試,而非單元測試。

如果你仍選擇連接本地 Spark 叢集,可以使用以下方式指定 connection string

connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()

二進位檔的衝突或遺漏 PATH 條目

您可以設定PATH,讓類似的 spark-shell 命令執行其他先前安裝的二進位檔,而不是 Databricks Connect 所提供的二進位檔。 您應該確保 Databricks Connect 的二進位檔有優先權,或移除之前安裝的。

如果您無法執行像spark-shell這樣的命令,也可能是pip3 install無法自動設定您的PATH,因此您必須手動將安裝目錄bin新增至您的PATH。 即使沒有設定,仍然可以使用 Databricks Connect 和 IDE。

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

如果你在 Windows 上使用 Databricks Connect,請查看:

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

Databricks Connect 已安裝到一個路徑中有空格的目錄中。 您可以藉由安裝至不含空格的目錄路徑,或使用簡短名稱格式來設定路徑,來解決此問題。