注意
本文涵蓋適用於 Databricks Runtime 13.3 LTS 及以上版本的 Databricks Connect。
本文說明如何在 Databricks Connect for Python 使用 Databricks Utilities。 Databricks Connect 讓您能將熱門的 IDE、筆記型電腦伺服器及自訂應用程式連接到 Azure Databricks 叢集。 請參閱 Databricks Connect。
開始使用 Databricks Connect 之前,您必須先 設定 Databricks Connect 用戶端。
如需本文的 Scala 版本,請參閱 Databricks Utilities with Databricks Connect for Scala。
可用的 Databricks 實用工具
您可以使用 Databricks Connect 來存取 Databricks 公用程式,如下所示:
- 使用
WorkspaceClient類別的dbutils變數來存取 Databricks Utilities。WorkspaceClient類別屬於 Databricks SDK for Python,並包含在 Databricks Connect 中。 - 使用
dbutils.fs以存取 Databricks 公用程式 fs 工具。 - 使用
dbutils.secrets來存取 Databricks 工具 機密 功能。
上述公用程式以外的任何 Databricks 公用程式功能都無法透過 dbutils取得。
提示
你也可以使用附帶的 Databricks SDK for Python,存取任何可用的 Databricks REST API,而不僅限於前述的 Databricks 工具 API。 請參閱 PyPI 上的 databricks-sdk。
啟動 WorkspaceClient
若要初始化 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()
Databricks SDK for Python 不識別 Databricks Connect 的 SPARK_REMOTE 環境變數。
關於 Databricks SDK for Python 的更多Azure Databricks認證選項,以及如何在 Databricks SDK 內初始化 AccountClient,以便在帳號層級而非工作區層級存取可用的 Databricks REST API,請參見 PyPI 上的 databricks-sdk。
示例:在磁碟區建立檔案
以下範例展示了如何使用 Databricks SDK for Python 來自動化 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 中的 使用 dbutils 進行互動的 Python 文件。