运行 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 迁移

通过将 Databricks 作业运行 CLI 子命令追加到 databricks runs 后面来运行 Databricks 作业运行 CLI 子命令,通过将 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 版增加了对多任务作业编排的支持;请参阅创建并运行 Azure Databricks 作业从作业 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.databricks.azure.cn/?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.databricks.azure.cn/?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.databricks.azure.cn/?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
}