作業 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 jobs
,而 Databricks 作業會藉由將 CLI 子命令附加至 databricks runs
來執行 CLI 子命令。 如需 Databricks 作業執行 CLI 子命令,請參閱執行 CLI (舊版)。 這些子命令會一起呼叫作業 API 和 作業 API 2.0。
重要
Databricks 作業 CLI 支援呼叫兩個版本的 Databricks 作業 REST API:2.1 版和 2.0 版。 2.1 版新增對具有多個工作之作業協調流程的支援,請參閱排程及協調工作流程,以及從作業 API 2.0 更新至 2.1。 Databricks 建議您呼叫 2.1 版,除非您有依賴 2.0 版本且無法移轉的舊版指令碼。
除非另有指定,否則本文所述的程式設計行為同樣適用於 2.1 和 2.0 版本。
呼叫作業 REST API 2.1 的需求
若要設定及使用 Databricks 作業 CLI (和作業執行 CLI) 來呼叫作業 REST API 2.1,請執行下列動作:
將 CLI 更新為 0.16.0 版或更新版本。
執行下列其中一項動作:
- 執行
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 jobs 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 更新為 X.Y.Z 版或更新版本,然後執行下列其中一項:
- 執行
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 jobs list --version=2.0
) 以指示作業 CLI 只針對該呼叫來呼叫作業 REST API 2.0。
- 執行
如果您未採取上述任何動作,作業 CLI (和作業執行 CLI) 會根據預設呼叫作業 REST API 2.0。
子命令和一般使用方式
databricks jobs -h
Usage: databricks jobs [OPTIONS] COMMAND [ARGS]...
Utility to interact with jobs.
Job runs are handled by ``databricks runs``.
Options:
-v, --version [VERSION]
-h, --help Show this message and exit.
Commands:
create Creates a job.
Options:
--json-file PATH File containing JSON request to POST to /api/2.0/jobs/create.
--json JSON JSON string to POST to /api/2.0/jobs/create.
delete Deletes a job.
Options:
--job-id JOB_ID Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
get Describes the metadata for a job.
Options:
--job-id JOB_ID Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
list Lists the jobs in the Databricks Job Service.
reset Resets (edits) the definition of a job.
Options:
--job-id JOB_ID Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
--json-file PATH File containing JSON request to POST to /api/2.0/jobs/create.
--json JSON JSON string to POST to /api/2.0/jobs/create.
run-now Runs a job with optional per-run parameters.
Options:
--job-id JOB_ID Can be found in the URL at https://<databricks-instance>/#job/$JOB_ID. [required]
--jar-params JSON JSON string specifying an array of parameters. i.e. '["param1", "param2"]'
--notebook-params JSON JSON string specifying a map of key-value pairs. i.e. '{"name": "john doe", "age": 35}'
--python-params JSON JSON string specifying an array of parameters. i.e. '["param1", "param2"]'
--spark-submit-params JSON JSON string specifying an array of parameters. i.e. '["--class", "org.apache.spark.examples.SparkPi"]'
建立作業
若要顯示使用方式文件,請執行 databricks jobs create --help
。
一般使用方式
databricks jobs create --json-file create-job.json
作業 CLI 2.1 使用方式注意事項和要求範例
請參閱從作業 API 2.0 更新至 2.1 中的建立。
作業 CLI 2.0 要求酬載和回應範例
create-job.json
:
{
"name": "my-job",
"existing_cluster_id": "1234-567890-reef123",
"notebook_task": {
"notebook_path": "/Users/someone@example.com/My Notebook"
},
"email_notifications": {
"on_success": [
"someone@example.com"
],
"on_failure": [
"someone@example.com"
]
}
}
{ "job_id": 246 }
提示
若要複製作業,請執行 create
命令,並使用要作業設定來傳遞 JSON 物件,以進行複製。 本範例會將 ID 246
的作業設定複製到新作業。 它需要 jq 公用程式。
SETTINGS_JSON=$(databricks jobs get --job-id 246 | jq .settings)
databricks jobs create --json "$SETTINGS_JSON"
{ "job_id": 247 }
刪除作業
若要顯示使用方式文件,請執行 databricks jobs delete --help
。
databricks job delete --job-id 246
如果成功,就不會顯示任何輸出。
提示
若要刪除具有相同設定的多個作業,請取得符合該設定的作業 ID 清單,然後針對每個的工作 ID 執行 delete
命令。 此範例會刪除作業名稱為 Untitled
的所有作業。 它需要 jq 公用程式。
databricks jobs list --output json | jq '.jobs[] | select(.settings.name == "Untitled") | .job_id' | xargs -n 1 databricks jobs delete --job-id
列出作業的相關資訊
若要顯示使用方式文件,請執行 databricks jobs get --help
。
一般使用方式
databricks jobs get --job-id 246
作業 CLI 2.1 使用方式注意事項和回應範例
請參閱從作業 API 2.0 更新至 2.1。
作業 CLI 2.0 回應範例
{
"job_id": 246,
"settings": {
"name": "my-job",
"existing_cluster_id": "1234-567890-reef123",
"email_notifications": {
"on_success": [
"someone@example.com"
],
"on_failure": [
"someone@example.com"
]
},
"timeout_seconds": 0,
"notebook_task": {
"notebook_path": "/Users/someone@example.com/My Notebook"
},
"max_concurrent_runs": 1
},
"created_time": 1620163107742,
"creator_user_name": "someone@example.com"
}
列出可用作業的相關資訊
若要顯示使用方式文件,請執行 databricks jobs list --help
。
一般使用方式
databricks jobs list
作業 CLI 2.1 使用方式注意事項和回應範例
請參閱從作業 API 2.0 更新至 2.1中的清單。
作業 CLI 2.0 回應範例
{
"jobs": [
{
"job_id": 246,
"settings": {
"name": "my-job",
"existing_cluster_id": "1234-567890-reef123",
"email_notifications": {
"on_success": [
"someone@example.com"
],
"on_failure": [
"someone@example.com"
]
},
"timeout_seconds": 0,
"notebook_task": {
"notebook_path": "/Users/someone@example.com/My Notebook"
},
"max_concurrent_runs": 1
},
"created_time": 1620163107742,
"creator_user_name": "someone@example.com"
},
...
]
}
列出所有作業 (僅限 API 2.1)
若要指示 CLI 透過對 API 進行循序呼叫來傳回所有作業,請使用 --all
選項。 若要使用 --all
選項,您必須 將 API 版本設定為 2.1。
databricks jobs list --all
作業列出的頁面 (僅限 API 2.1)
若要傳回分業作業清單,請使用 --limit
和 --offset
引數。 根據預設,作業清單會以包含作業 ID 和作業名稱的資料表傳回。 若要選擇性地傳回包含作業資訊的 JSON 檔,請使用 --output JSON
引數。
若要使用 --limit
和 --offset
引數,您必須 將 API 版本設定為 2.1。
使用 --output JSON
時,清單會依作業建立日期以遞減順序傳回。 使用 --output TABLE
時,清單會依作業建立日期以遞減順序傳回,然後依作業名稱依字母順序排序。
下列範例會逐一查看作業清單的 10 個作業,並以 JSON 格式傳回結果:
databricks jobs list --output JSON --limit 10
databricks jobs list --output JSON --limit 10 --offset 10
databricks jobs list --output JSON --limit 10 --offset 20
變更作業的設定
若要顯示使用方式文件,請執行 databricks jobs reset --help
。
一般使用方式
databricks jobs reset --job-id 246 --json-file reset-job.json
作業 CLI 2.1 使用方式注意事項和要求範例
請參閱從作業 API 2.0 更新至 2.1 中的更新和重設。
作業 CLI 2.0 要求範例
reset-job.json
:
{
"job_id": 246,
"existing_cluster_id": "2345-678901-batch234",
"name": "my-changed-job",
"notebook_task": {
"notebook_path": "/Users/someone@example.com/My Other Notebook"
},
"email_notifications": {
"on_success": [
"someone-else@example.com"
],
"on_failure": [
"someone-else@example.com"
]
}
}
如果成功,就不會顯示任何輸出。
執行作業
若要顯示使用方式文件,請執行 databricks jobs run-now --help
。
databricks jobs run-now --job-id 246
{
"run_id": 122,
"number_in_job": 1
}