共用方式為


適用於 Python 的 Databricks Connect 進階使用方式

注意

本文涵蓋 Databricks Connect for Databricks Runtime 14.0 和更新版本。

本文說明超越 Databricks Connect 基本設定的主題。

設定 Spark Connect 連接字串

除了使用設定叢集連線中所述的選項連線到叢集之外,更進階的選項是使用Spark Connect 連接字串 進行連線。 您可以在函式中 remote 傳遞字串,或設定 SPARK_REMOTE 環境變數。

注意

您只能使用 Databricks 個人存取令牌驗證,使用 Spark Connect 連接字串 進行連線。

若要使用 remote 函式來設定 連接字串:

# Set the Spark Connect connection string in DatabricksSession.builder.remote.
from databricks.connect import DatabricksSession

workspace_instance_name = retrieve_workspace_instance_name()
token                   = retrieve_token()
cluster_id              = retrieve_cluster_id()

spark = DatabricksSession.builder.remote(
   f"sc://{workspace_instance_name}:443/;token={token};x-databricks-cluster-id={cluster_id}"
).getOrCreate()

或者,設定 SPARK_REMOTE 環境變數:

sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>

然後初始化 類別, DatabricksSession 如下所示:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Pyspark 殼層

適用於 Python 的 Databricks Connect 隨附二 pyspark 進位檔,這是設定為使用 Databricks Connect 的 PySpark REPL (Spark 殼層)。 REPL 可以藉由執行下列項目來啟動:

pyspark

從沒有其他參數開始時,它會從環境挑選默認認證(例如 DATABRICKS_ ,環境變數或 DEFAULT 組態配置檔),以連線到 Azure Databricks 叢集。

REPL 啟動時, spark 物件會設定為在 Databricks 叢集上執行 Apache Spark 命令。

>>> spark.range(3).show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
+---+

REPL 可以設定--remote為使用 Spark 連線 連接字串 來連線至不同的遠端。

pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"

若要停止殼層,請按 Ctrl + dCtrl + z,或執行 命令 quit()exit()

其他 HTTP 標頭

Databricks Connect 透過 HTTP/2 透過 gRPC 與 Databricks 叢集通訊。

某些進階使用者可能會選擇在用戶端與 Azure Databricks 叢集之間安裝 Proxy 服務,以更妥善地控制來自其用戶端的要求。

在某些情況下,Proxy 可能需要 HTTP 要求中的自定義標頭。

headers()方法可用來將自定義標頭新增至其 HTTP 要求。

spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()

憑證

如果您的叢集依賴自定義 SSL/TLS 憑證來解析 Azure Databricks 工作區完整功能變數名稱 (FQDN),您必須在本機開發電腦上設定環境變數 GRPC_DEFAULT_SSL_ROOTS_FILE_PATH 。 此環境變數必須設定為叢集上安裝憑證的完整路徑。

例如,您會在 Python 程式代碼中設定此環境變數,如下所示:

import os

os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"

如需設定環境變數的其他方式,請參閱作業系統的檔。

記錄和偵錯記錄

適用於 Python 的 Databricks Connect 會使用標準 Python 記錄來產生記錄

記錄會發出至標準錯誤數據流 (stderr),根據預設,它們只會發出WARN 層級和更高層級的記錄。

設定環境變數 SPARK_CONNECT_LOG_LEVEL=debug 會修改此預設值,並列印層級和更高層級的所有記錄訊息 DEBUG