Python 版本的 Databricks 連接和 Databricks 工具程式
注意
本文涵蓋 Databricks Runtime 13.3 LTS 和更新版本適用的 Databricks Connect。
本文說明如何使用 Databricks Utilities 搭配適用於 Python 的 Databricks Connect。 Databricks Connect 可讓您將熱門的 IDE、Notebook 伺服器和自定義應用程式連線到 Azure Databricks 叢集。 請參閱 什麼是 Databricks Connect?。 如需本文的 Scala 版本,請參閱 Databricks Utilities with Databricks Connect for Scala。
注意
開始使用 Databricks Connect 之前,您必須先 設定 Databricks Connect 用戶端。
您可以使用 Databricks Connect 來存取 Databricks 公用程式,如下所示:
- 使用
WorkspaceClient
類別的dbutils
變數來存取 Databricks Utilities。WorkspaceClient
類別屬於適用於 Python 的 Databricks SDK,並包含在 Databricks Connect 中。 - 使用
dbutils.fs
以存取 Databricks 公用程式 fs 工具。 - 使用
dbutils.secrets
來存取 Databricks 工具 機密 功能。 - 上述公用程式以外的任何 Databricks 公用程式功能都無法透過
dbutils
取得。
提示
您也可以使用內含的 Databricks SDK for Python 來存取任何可用的 Databricks REST API,而不只是上述 Databricks 公用程式 API。 請參閱 PyPI 上的 databricks-sdk。
若要初始化 WorkspaceClient
,您必須提供足夠的資訊來驗證 Databricks SDK 與工作區的連接。 例如,您可以:
直接在程序代碼中將工作區 URL 和存取令牌硬式編碼,然後初始化
WorkspaceClient
,如下所示。 雖然此選項受到支援,但 Databricks 不建議 使用它,因為如果程式碼被簽入版本控制或以其他方式共用,可能會洩露敏感資訊,例如存取令牌:from databricks.sdk import WorkspaceClient w = WorkspaceClient(host = f"https://{retrieve_workspace_instance_name()}", token = retrieve_token())
建立或指定 組態配置檔,其中包含字段
host
和token
,然後初始化WorkspaceClient
,如下所示:from databricks.sdk import WorkspaceClient w = WorkspaceClient(profile = "<profile-name>")
請以設定 Databricks Connect 環境變數的方式來設定
DATABRICKS_HOST
和DATABRICKS_TOKEN
,然後如下所示初始化WorkspaceClient
:from databricks.sdk import WorkspaceClient w = WorkspaceClient()
適用於 Python 的 Databricks SDK 無法辨識 Databricks Connect 的 SPARK_REMOTE
環境變數。
如需適用於 Python 的 Databricks SDK 的其他 Azure Databricks 驗證選項,以及如何在 Databricks SDK 內初始化 AccountClient
,以存取帳戶層級可用的 Databricks REST API,而不是在工作區層級存取,請參閱 pyPI 上的 databricks-sdk。
下列範例示範如何使用適用於 Python 的 Databricks SDK 將 Databricks 公用程式自動化。 此範例會在工作區內的 Unity 目錄磁碟區路徑中建立名為 zzz_hello.txt
的檔案、從檔案讀取數據,然後刪除檔案。 此範例假設已設定環境變數 DATABRICKS_HOST
和 DATABRICKS_TOKEN
:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs
fs.put(
file = file_path,
contents = file_data,
overwrite = True
)
print(fs.head(file_path))
fs.rm(file_path)
另請參閱 Databricks SDK for Python 檔中 與 dbutils 互動。