共用方式為


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())
    
  • 建立或指定 組態配置檔,其中包含字段 hosttoken,然後初始化 WorkspaceClient,如下所示:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • 請以設定 Databricks Connect 環境變數的方式來設定 DATABRICKS_HOSTDATABRICKS_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_HOSTDATABRICKS_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 互動