Share via


Databricks CLI (舊版)

重要

此檔已淘汰,且可能未更新。

Databricks 建議您使用 Databricks CLI 0.205 版或更新版本,而不是舊版 Databricks CLI 0.18 版或更新版本。 Databricks 不支援 Databricks CLI 0.18 版或更新版本。 如需 Databricks CLI 0.205 版和更新版本的相關信息,請參閱 什麼是 Databricks CLI?

若要從 Databricks CLI 0.18 版或更新版本移轉至 Databricks CLI 0.205 版或更新版本,請參閱 Databricks CLI 移轉

舊版 Databricks CLI 處於 實驗 狀態。 Databricks 目前沒有針對舊版 Databricks CLI 的新功能運作。

舊版 Databricks CLI 不支援透過 Databricks 支援通道。 若要提供意見反應、詢問問題及回報問題,請使用 GitHub 中 Databricks 存放庫命令行介面中的 [問題 ] 索引卷標。

舊版 Databricks 命令行介面(也稱為舊版 Databricks CLI)是一個公用程式,可提供易於使用的介面,從終端機、命令提示字元或自動化腳本將 Azure Databricks 平臺自動化。

需求

  • Python 3 - 3.6 和更新版本
  • Python 2 - 2.7.9 和更新版本

重要

在macOS上,預設的 Python 2 安裝不會實作TLSv1_2通訊協定,而且使用此 Python 安裝執行舊版 Databricks CLI 會導致錯誤: AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'。 使用 Homebrew 安裝具有 ssl.PROTOCOL_TLSv1_2的 Python 版本。

限制

不支援使用舊版 Databricks CLI 搭配啟用防火牆的記憶體容器。 Databricks 建議您使用 Databricks 連線az storage

設定 CLI

本節說明如何設定舊版 Databricks CLI。

安裝或更新 CLI

本節說明如何安裝或更新您的開發計算機,以執行舊版 Databricks CLI。

安裝 CLI

pip install databricks-cli使用適用於 Python 安裝的適當 版本pip來執行:

pip install databricks-cli

更新 CLI

pip install databricks-cli --upgrade使用適用於 Python 安裝的適當 版本pip來執行:

pip install databricks-cli --upgrade

若要列出目前安裝的舊版 Databricks CLI 版本,請執行 databricks --version

databricks --version

設定驗證

您必須先設定舊版 Databricks CLI 與 Azure Databricks 之間的驗證,才能執行舊版 Databricks CLI 命令。 本節說明如何設定舊版 Databricks CLI 的驗證。

若要使用舊版 Databricks CLI 進行驗證,您可以使用 Databricks 個人存取令牌Microsoft Entra ID(先前稱為 Azure Active Directory) 令牌

注意

作為安全性最佳做法,當您使用自動化工具、系統、腳本和應用程式進行驗證時,Databricks 建議您使用屬於 服務主體 的個人存取令牌,而不是工作區使用者。 若要建立服務主體的令牌,請參閱 管理服務主體的令牌。

使用 Microsoft Entra 識別符設定驗證(先前稱為 Azure Active Directory) 令牌

若要使用 Microsoft Entra ID 令牌設定舊版 Databricks CLI, 請產生 Microsoft Entra ID (先前稱為 Azure Active Directory) 令牌 ,並將其儲存在環境變數 DATABRICKS_AAD_TOKEN中。

執行以下命令:

databricks configure --aad-token

命令會發出提示:

Databricks Host (should begin with https://):

輸入每個工作區的網址,格式為 https://adb-<workspace-id>.<random-number>.azuredatabricks.net。 若要取得每個工作區的 URL,請參閱 個別工作區 URL

完成提示之後,您的存取認證會儲存在Linux或macOS或 %USERPROFILE%\.databrickscfg Windows 上的檔案~/.databrickscfg中。 檔案包含預設設定檔專案:

[DEFAULT]
host = <workspace-URL>
token = <Azure-AD-token>

.databrickscfg如果檔案已經存在,該檔案的DEFAULT組態配置檔會以新的數據覆寫。 若要改為使用不同的名稱建立組態配置檔,請參閱 連線 配置檔

使用 Databricks 個人存取令牌設定驗證

若要設定舊版 Databricks CLI 以使用個人存取令牌,請執行下列命令:

databricks configure --token

命令會從發出提示開始:

Databricks Host (should begin with https://):

輸入每個工作區的網址,格式為 https://adb-<workspace-id>.<random-number>.azuredatabricks.net。 若要取得每個工作區的 URL,請參閱 個別工作區 URL

命令會繼續發出提示以輸入您的個人存取權杖:

Token:

完成提示之後,您的存取認證會儲存在Linux或macOS或 %USERPROFILE%\.databrickscfg Windows 上的檔案~/.databrickscfg中。 檔案包含預設設定檔專案:

[DEFAULT]
host = <workspace-URL>
token = <personal-access-token>

.databrickscfg如果檔案已經存在,該檔案的DEFAULT組態配置檔會以新的數據覆寫。 若要改為使用不同的名稱建立組態配置檔,請參閱 連線 配置檔

針對 CLI 0.8.1 和更新版本,您可以藉由設定環境變數 DATABRICKS_CONFIG_FILE來變更此檔案的路徑。

Linux 或 macos
export DATABRICKS_CONFIG_FILE=<path-to-file>
Windows
setx DATABRICKS_CONFIG_FILE "<path-to-file>" /M

重要

從 CLI 0.17.2 開始,CLI 不適用於 .netrc 檔案。 您可以在環境中有檔案 .netrc 以供其他用途使用,但 CLI 不會使用該 .netrc 檔案。

CLI 0.8.0 和更新版本支援下列 Azure Databricks 環境變數:

  • DATABRICKS_HOST
  • DATABRICKS_TOKEN

環境變數設定的優先順序高於組態檔中的設定。

測試您的驗證設定

若要檢查您是否正確設定驗證,您可以執行如下的命令:

databricks fs ls dbfs:/

如果成功,此命令會列出與配置文件DEFAULT相關聯之工作區之 DBFS 根目錄中的檔案和目錄。

連線 配置檔

舊版 Databricks CLI 組態支援多個連線配置檔。 舊版 Databricks CLI 的相同安裝可用來對多個 Azure Databricks 工作區進行 API 呼叫。

若要新增連線設定檔,請指定設定檔的唯一名稱:

databricks configure [--token | --aad-token] --profile <profile-name>

檔案 .databrickscfg 包含對應的設定檔專案:

[<profile-name>]
host = <workspace-URL>
token = <token>

若要使用連線設定檔:

databricks <group> <command> --profile <profile-name>

如果未 --profile <profile-name> 指定,則會使用預設配置檔。 如果找不到預設配置檔,系統會提示您使用預設配置檔來設定 CLI。

測試您的連線配置檔

若要檢查您是否已正確設定任何連線設定檔,您可以使用下列其中一個連線設定檔名稱來執行命令:

databricks fs ls dbfs:/ --profile <profile-name>

如果成功,此命令 會針對指定的連接配置檔列出工作區 之 DBFS 根目錄中的檔案和目錄。 針對您要測試的每個連線配置檔執行此命令。

若要檢視可用的配置檔,請參閱您的 .databrickscfg 檔案。

使用 CLI

本節說明如何取得舊版 Databricks CLI 說明、剖析舊版 Databricks CLI 輸出,以及叫用每個命令群組中的命令。

顯示 CLI 命令群組說明

您可以使用 或 -h 選項列出任何命令群組--help的子命令。 例如,若要列出 DBFS CLI 子命令:

databricks fs -h

顯示 CLI 子命令說明

您可以使用 或 -h 選項列出子命令--help的說明。 例如,若要列出 DBFS 複製檔案子命令的說明:

databricks fs cp -h

別名命令群組

有時候,將每個舊版 Databricks CLI 叫用前面加上命令群組的名稱,例如 databricks workspace ls 在舊版 Databricks CLI 中,可能會不方便。 若要讓舊版 Databricks CLI 更容易使用,您可以將命令群組別名為較短的命令。 例如,若要在 Bourne 再次殼層中縮短 databricks workspace lsdw ls ,您可以將 新增 alias dw="databricks workspace" 至適當的 bash 設定檔。 一般而言,這個檔案位於 ~/.bash_profile

提示

舊版 Databricks CLI 已經別名 databricks fsdbfsdatabricks fs lsdbfs ls 相等。

用來 jq 剖析 CLI 輸出

某些舊版 Databricks CLI 命令會從 API 端點輸出 JSON 回應。 有時候剖析 JSON 部分以管線傳送至其他命令會很有用。 例如,若要複製作業定義,您必須取得 settings 作業命令的欄位,並將該欄位當做建立作業命令的自變數使用。 在這些情況下,建議您使用 公用程式 jq

例如,下列命令會列印標識符為 233 的作業設定。

databricks jobs list --output JSON | jq '.jobs[] | select(.job_id == 233) | .settings'

輸出:

{
  "name": "Quickstart",
  "new_cluster": {
    "spark_version": "7.5.x-scala2.12",
    "spark_env_vars": {
      "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
    },
    "num_workers": 8,
    ...
  },
  "email_notifications": {},
  "timeout_seconds": 0,
  "notebook_task": {
    "notebook_path": "/Quickstart"
  },
  "max_concurrent_runs": 1
}

另一個範例是,下列命令只會列印工作區中所有可用叢集的名稱和識別碼:

databricks clusters list --output JSON | jq '[ .clusters[] | { name: .cluster_name, id: .cluster_id } ]'

輸出:

[
  {
    "name": "My Cluster 1",
    "id": "1234-567890-grip123"
  },
  {
    "name": "My Cluster 2",
    "id": "2345-678901-patch234"
  }
]

例如,您可以使用 jq Homebrew 搭配 或搭配使用 Chocolatey 搭配 brew install jqchoco install jq在 Windows 上安裝 ,例如在 macOS 上安裝 。 如需 的詳細資訊 jq,請參閱 jq Manual

JSON 字串參數

視您的作業系統而定,字串參數會以不同的方式處理:

Linux 或 macos

您必須以單引弧括住 JSON 字串參數。 例如:

'["20180505", "alantest"]'

Windows

您必須以雙引弧括住 JSON 字串參數,而且字串內的引號字元前面必須加上 \。 例如:

"[\"20180505\", \"alantest\"]"

疑難排解

下列各節提供針對舊版 Databricks CLI 常見問題進行疑難解答的秘訣。

搭配使用 EOF databricks configure 無法運作

針對 Databricks CLI 0.12.0 和更新版本,使用腳本中的檔案結尾 (EOF) 序列將參數傳遞至 databricks configure 命令無法運作。 例如,下列腳本會導致 Databricks CLI 忽略參數,而且不會擲回錯誤訊息:

# Do not do this.
databricksUrl=<per-workspace-url>
databricksToken=<personal-access-token-or-Azure-AD-token>

databricks configure --token << EOF
$databricksUrl
$databricksToken
EOF

若要修正此問題,請執行下列其中一項:

  • 使用其他其中一個程式設計組態選項,如設定驗證中所述
  • 手動將 和 token 值新增host至檔案,.databrickscfg如設定驗證中所述
  • 將 Databricks CLI 的安裝降級為 0.11.0 或更新版本,然後再次執行您的腳本。

CLI 命令