共用方式為


執行 CLI (舊版)

重要

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

此資訊適用於舊版 Databricks CLI 0.18 版和更早版本。 Databricks 建議您改用較新的 Databricks CLI 0.205 版或更新版本。 請參閱什麼是 Databricks CLI?。 若要尋找 Databricks CLI 版本,請執行 databricks -v

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

您可以藉由將 CLI 子命令附加至 databricks runs 以執行 Databricks 作業執行 CLI 子命令,以及透過附加子命令至 databricks jobs 以執行 Databricks 作業 CLI 子命令。 如需 Databricks 作業 CLI 子命令,請參閱作業 CLI (舊版)。 這些子命令會一起呼叫作業 API作業 API 2.0

重要

Databricks 作業執行 CLI 支援呼叫兩個版本的 Databricks 作業 REST API:2.1 和 2.0 版本。 (作業執行功能是作業 REST API 的一部分。) 2.1 版新增對具有多個工作之作業協調流程的支援,請參閱排程及協調工作流程,以及從作業 API 2.0 更新至 2.1。 Databricks 建議您呼叫 2.1 版,除非您有依靠 2.0 版且無法移轉的舊版指令碼。

除非另有指定,否則本文所述的程式設計行為同樣適用於 2.1 和 2.0 版本。

注意

如果您在提出作業執行 CLI 要求時收到 500 層級的錯誤,Databricks 建議重試要求最多 10 分鐘 (重試間隔至少 30 秒)。

呼叫作業 REST API 2.1 的需求

若要設定 Databricks 作業執行 CLI (和作業 CLI) 以呼叫作業 REST API 2.1,請執行下列動作:

  1. 將 CLI 更新為 0.16.0 版或更新版本。

  2. 執行下列其中一項動作:

    • 執行 databricks jobs configure --version=2.1 命令。 這會將設定 jobs-api-version = 2.1 新增至 Unix、Linux 或 macOS 上的檔案 ~/.databrickscfg,或 Windows 上的 %USERPROFILE%\.databrickscfg。 所有作業都會執行 CLI (和作業 CLI) 子命令,其會根據預設呼叫作業 REST API 2.1。
    • 手動新增設定 jobs-api-version = 2.1 至 Unix、Linux 或 macOS 上的檔案 ~/.databrickscfg,或 Windows 上的 %USERPROFILE%\.databrickscfg。 所有作業都會執行 CLI (和作業 CLI) 子命令,其會根據預設呼叫作業 REST API 2.1。
    • 附加選項 --version=2.1 (例如 databricks runs list --version=2.1) 指示作業執行 CLI 只針對該呼叫來呼叫作業 REST API 2.1。

    如果您未採取上述任何動作,作業會執行 CLI (和作業 CLI) 預設會呼叫作業 REST API 2.0。

呼叫作業 REST API 2.0 的需求

若要設定 Databricks 作業執行 CLI (和作業 CLI) 以呼叫作業 REST API 2.0,請執行下列其中一項:

  • 使用 0.16.0 以下的 Databricks CLI 版本,或
  • 將 CLI 更新為 0.16.0 版或更新版本,然後執行下列其中一項:
    • 執行 databricks jobs configure --version=2.0 命令。 這會將設定 jobs-api-version = 2.0 新增至 Unix、Linux 或 macOS 上的檔案 ~/.databrickscfg,或 Windows 上的 %USERPROFILE%\.databrickscfg。 所有作業都會執行 CLI (和作業 CLI) 子命令,其會根據預設呼叫作業 REST API 2.0。
    • 手動新增設定 jobs-api-version = 2.0 至 Unix、Linux 或 macOS 上的檔案 ~/.databrickscfg,或 Windows 上的 %USERPROFILE%\.databrickscfg。 所有作業都會執行 CLI (和作業 CLI) 子命令,其會根據預設呼叫作業 REST API 2.0。
    • 附加選項 --version=2.1 (例如 databricks runs list --version=2.0) 指示作業執行 CLI 只針對該呼叫來呼叫作業 REST API 2.0。

如果您未採取上述任何動作,作業會執行 CLI (和作業 CLI) 預設會呼叫作業 REST API 2.0。

子命令和一般使用方式

databricks runs --help
Usage: databricks runs [OPTIONS] COMMAND [ARGS]...

  Utility to interact with jobs runs.

Options:
  -v, --version   [VERSION]
  --debug         Debug mode. Shows full stack trace on error.
  --profile TEXT  CLI connection profile to use. The default profile is
                  "DEFAULT".

  -h, --help      Show this message and exit.

Commands:
  cancel      Cancels the specified run.
  get         Gets the metadata about a run in JSON form.
  get-output  Gets the output of a run.
  list        Lists job runs.
  submit      Submits a one-time run.

取消執行

若要顯示使用方式文件,請執行 databricks runs cancel --help

databricks runs cancel --run-id 119
{}

取得執行的相關資訊

若要顯示使用方式文件,請執行 databricks runs get --help

一般使用方式

databricks runs get --run-id 2785782

作業 CLI 2.1 使用方式注意事項和回應範例

請參閱從作業 API 2.0 更新至 2.1 中的執行取得

作業 CLI 2.0 回應範例

{
  "job_id": 1269263,
  "run_id": 2785782,
  "number_in_job": 1111,
  "original_attempt_run_id": 2785782,
  "state": {
    "life_cycle_state": "TERMINATED",
    "result_state": "SUCCESS",
    "state_message": ""
  },
  "task": {
    "notebook_task": {
      "notebook_path": "/Users/someone@example.com/notebooks/my-notebook.ipynb"
    }
  },
  "cluster_spec": {
    "new_cluster": {
      "spark_version": "8.1.x-scala2.12",
      "node_type_id": "Standard_F16s",
      "enable_elastic_disk": true,
      "azure_attributes": {
        "availability": "ON_DEMAND_AZURE"
      },
      "num_workers": 8
    }
  },
  "cluster_instance": {
    "cluster_id": "1234-567890-abcd123",
    "spark_context_id": "1234567890123456789"
  },
  "start_time": 1620947196985,
  "setup_duration": 36000,
  "execution_duration": 119000,
  "cleanup_duration": 3000,
  "end_time": 1620947355499,
  "trigger": "ONE_TIME",
  "creator_user_name": "someone@example.com",
  "run_name": "my-notebook-run",
  "run_page_url": "https://adb-1234567890123456.7.azuredatabricks.net/?o=1234567890123456#job/1269263/run/1111",
  "run_type": "JOB_RUN",
  "attempt_number": 0
}

取得執行的輸出

若要顯示使用方式文件,請執行 databricks runs get-output --help

注意

notebook_task 從呼叫傳回 dbutils.notebook.exit() 值時,Databricks 會將傳回的值限制為前 5 MB 的資料。 若要傳回較大的結果,您可以將作業結果儲存在雲端儲存體服務中。

一般使用方式

databricks runs get-output --run-id 2785782

作業 CLI 2.1 使用方式注意事項

請參閱從作業 API 2.0 更新至 2.1 中的執行取得輸出

作業 CLI 2.0 回應範例

{
  "metadata": {
    "job_id": 1269263,
    "run_id": 2785782,
    "number_in_job": 1111,
    "original_attempt_run_id": 2785782,
    "state": {
      "life_cycle_state": "TERMINATED",
      "result_state": "SUCCESS",
      "state_message": ""
    },
    "task": {
      "notebook_task": {
        "notebook_path": "/Users/someone@example.com/notebooks/my-notebook.ipynb"
      }
    },
    "cluster_spec": {
      "new_cluster": {
        "spark_version": "8.1.x-scala2.12",
        "node_type_id": "Standard_F16s",
        "enable_elastic_disk": true,
        "azure_attributes": {
          "availability": "ON_DEMAND_AZURE"
        },
        "num_workers": 8
      }
    },
    "cluster_instance": {
      "cluster_id": "1234-567890-abcd123",
      "spark_context_id": "1234567890123456789"
    },
    "start_time": 1620947196985,
    "setup_duration": 36000,
    "execution_duration": 119000,
    "cleanup_duration": 3000,
    "end_time": 1620947355499,
    "trigger": "ONE_TIME",
    "creator_user_name": "someone@example.com",
    "run_name": "my-notebook-run",
    "run_page_url": "https://adb-1234567890123456.7.azuredatabricks.net/?o=1234567890123456#job/1269263/run/1111",
    "run_type": "JOB_RUN",
    "attempt_number": 0
  },
  "notebook_output": {}
}

取得所有執行的相關資訊

若要顯示使用方式文件,請執行 databricks runs list --help

一般使用方式

databricks runs list --output JSON

作業 CLI 2.1 使用方式注意事項和回應範例

請參閱從作業 API 2.0 更新至 2.1 中的執行清單

作業 CLI 2.0 回應範例

{
  "runs": [
    {
      "job_id": 1269263,
      "run_id": 2785782,
      "number_in_job": 1111,
      "original_attempt_run_id": 2785782,
      "state": {
         "life_cycle_state": "TERMINATED",
         "result_state": "SUCCESS",
         "state_message": ""
      },
      "task": {
        "notebook_task": {
          "notebook_path": "/Users/someone@example.com/notebooks/my-notebook.ipynb"
        }
      },
      "cluster_spec": {
        "new_cluster": {
          "spark_version": "8.1.x-scala2.12",
          "node_type_id": "Standard_F16s",
          "enable_elastic_disk": true,
          "azure_attributes": {
            "availability": "ON_DEMAND_AZURE"
          },
          "num_workers": 8
        }
      },
      "cluster_instance": {
        "cluster_id": "1234-567890-abcd123",
        "spark_context_id": "1234567890123456789"
      },
      "start_time": 1620947196985,
      "setup_duration": 36000,
      "execution_duration": 119000,
      "cleanup_duration": 3000,
      "end_time": 1620947355499,
      "trigger": "ONE_TIME",
      "creator_user_name": "someone@example.com",
      "run_name": "my-notebook-run",
      "run_page_url": "https://adb-1234567890123456.7.azuredatabricks.net/?o=1234567890123456#job/1269263/run/1111",
      "run_type": "JOB_RUN",
      "attempt_number": 0
    },
    ...
  ],
  "has_more": false
}

如果 has_more 傳回 true,則會提供其他執行的相關資訊。 使用 --offset 選項可傳回與最近執行的相關資訊。 例如,若要傳回從最近第十次執行開始的資訊,請指定 --offset 10

使用 --limit 選項可傳回固定執行數目的相關資訊。 例如,若要傳回接下來最多 5 次執行的資訊,請指定 --limit 5。 最多可以指定 1000 個執行。 若未加以指定,預設為 20。

提交一次性執行

若要顯示使用方式文件,請執行 databricks runs submit --help

一般使用方式

databricks runs submit --json-file submit-run.json

作業 REST API 2.1 使用注意事項和要求範例

請參閱從作業 API 2.0 更新至 2.1 中的執行提交

作業 REST API 2.0 要求和回應範例

submit-run.json

{
  "run_name": "my-spark-run",
  "new_cluster": {
    "spark_version": "8.1.x-scala2.12",
    "node_type_id": "Standard_F16s",
    "enable_elastic_disk": true,
    "azure_attributes": {
      "availability": "ON_DEMAND_AZURE"
    },
    "num_workers": 8
  },
  "libraries": [
    {
      "jar": "dbfs:/my-jar.jar"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2"
      }
    }
  ],
  "spark_jar_task": {
    "main_class_name": "com.databricks.ComputeModels"
  }
}
{
  "run_id": 123
}