メインコンテンツまでスキップ

ジョブ CLI (レガシー)

important

このドキュメントは廃止されており、更新されない可能性があります。

この情報は、従来の 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 に追加することで実行します。Databricks ジョブの実行CLIサブコマンドについては、実行CLI (レガシー) を参照してください。これらのサブコマンドは、 Jobs APIJobs API 2.0 を一緒に呼び出します。

important

Databricks ジョブ CLI は、Databricks ジョブ REST API の 2 つのバージョン (バージョン 2.1 と 2.0) の呼び出しをサポートしています。バージョン 2.1 では、複数のタスクを持つジョブのオーケストレーションのサポートが追加されています。Databricksジョブを使用したオーケストレーションおよびジョブ API 2.0 から 2.1 への更新を参照してください。Databricks では、バージョン 2.0 に依存し、移行できないレガシ スクリプトがない限り、バージョン 2.1 を呼び出すことをお勧めします。

特に指定がない限り、この記事で説明するプログラムの動作は、バージョン 2.1 と 2.0 に等しく適用されます。

ジョブ REST API 2.1 を呼び出すための要件

Databricks ジョブ CLI (およびジョブ 実行 CLIU ) を設定して使用し、ジョブを 2.1 REST API呼び出すには、次の操作を行います。

  1. CLI をバージョン 0.16.0 以降に更新します

  2. 以下のいずれかを実行します。

    • databricks jobs configure --version=2.1コマンドを実行します。これにより、Unix、Linux、macOSではファイル~/.databrickscfg、Windowsでは%USERPROFILE%\.databrickscfgに設定jobs-api-version = 2.1が追加されます。すべてのジョブ CLI (およびジョブ 実行 CLI) サブコマンドは、デフォルトによって Jobs REST API 2.1 を呼び出します。
    • 設定 jobs-api-version = 2.1 をファイル ~/.databrickscfg Unix、Linux、macOS または Windows の Windows %USERPROFILE%\.databrickscfg に手動で追加します。 すべてのジョブ CLI (およびジョブ 実行 CLI) サブコマンドは、デフォルトによって Jobs REST API 2.1 を呼び出します。
    • オプション --version=2.1 ( databricks jobs list --version=2.1など) を追加して、ジョブ CLI に対して、その呼び出しに対してのみジョブ REST API 2.1 を呼び出すように指示します。

    上記の操作を一切行わない場合、ジョブ CLI (およびジョブ 実行 CLI) は Jobs REST API by 2.0 を呼び出します。

ジョブ REST API 2.0 を呼び出すための要件

DatabricksジョブCLI (およびジョブ 実行 UCLI ) を設定して使用し、ジョブをRESTAPI 2.0 呼び出すには、次のいずれかの操作を行います。

  • 0.16.0 より前のバージョンの Databricks CLI を使用するか、
  • CLI を バージョン X.Y.Z 以上に更新し、次のいずれかを実行します。
    • databricks jobs configure --version=2.0コマンドを実行します。これにより、Unix、Linux、macOSではファイル~/.databrickscfg、Windowsでは%USERPROFILE%\.databrickscfgに設定jobs-api-version = 2.0が追加されます。すべてのジョブ CLI (およびジョブ 実行 CLI) サブコマンドは、デフォルトによって Jobs REST API 2.0 を呼び出します。
    • 設定 jobs-api-version = 2.0 をファイル ~/.databrickscfg Unix、Linux、macOS または Windows の Windows %USERPROFILE%\.databrickscfg に手動で追加します。 すべてのジョブ CLI (およびジョブ 実行 CLI) サブコマンドは、デフォルトによって Jobs REST API 2.0 を呼び出します。
    • オプション --version=2.1 ( databricks jobs list --version=2.0など) を追加して、ジョブ CLI に対して、その呼び出しに対してのみジョブ REST API 2.0 を呼び出すように指示します。

上記の操作を一切行わない場合、ジョブ CLI (およびジョブ 実行 CLI) は Jobs REST API by 2.0 を呼び出します。

サブコマンドと一般的な使用法

Bash
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を実行します。

一般的な使用法

Bash
databricks jobs create --json-file create-job.json

ジョブ CLI 2.1 の使用上の注意と要求の例

「ジョブ API 2.0 から 2.1 への更新 」の「作成 」を参照してください。

ジョブ CLI 2.0 要求ペイロードと応答の例

create-job.json:

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"]
}
}
Console
{ "job_id": 246 }
ヒント

ジョブをコピーするには、 create コマンドを実行し、コピーするジョブの設定を含む JSON オブジェクトを渡します。 この例では、ID が 246 のジョブの設定を新しいジョブにコピーします。 jq ユーティリティが必要です。

Bash
SETTINGS_JSON=$(databricks jobs get --job-id 246 | jq .settings)

databricks jobs create --json "$SETTINGS_JSON"
Console
{ "job_id": 247 }

ジョブの削除

使用方法のドキュメントを表示するには、 databricks jobs delete --helpを実行します。

Bash
databricks job delete --job-id 246

成功した場合、出力は表示されません。

ヒント

同じ設定を持つ複数のジョブを削除するには、その設定に一致するジョブ ID の一覧を取得し、一致する各ジョブ ID に対して delete コマンドを実行します。 この例では、ジョブ名が Untitledのすべてのジョブを削除します。 jq ユーティリティが必要です。

Bash
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を実行します。

一般的な使用法

Bash
databricks jobs get --job-id 246

ジョブ CLI 2.1 の使用上の注意と応答の例

「Jobs API 2.0 から 2.1 への更新」を参照してください 。

ジョブ CLI 2.0 応答の例

Console
{
"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を実行します。

一般的な使用法

Bash
databricks jobs list

ジョブ CLI 2.1 の使用上の注意と応答の例

Jobs API 2.0 から 2.1 への更新の一覧を参照してください

ジョブ CLI 2.0 応答の例

Console
{
"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 のみ)

API を順次呼び出してすべてのジョブを返すように CLI に指示するには、 --all オプションを使用します。 --all オプションを使用するには、API バージョンを 2.1 に設定する必要があります

Bash
databricks jobs list --all

ジョブ リストのページング (API 2.1 のみ)

ページ分割されたジョブ リストを返すには、引数と --offset 引数を --limit 使用します。デフォルトでは、ジョブリストはジョブIDとジョブ名を含むテーブルとして返されます。 オプションでジョブ情報を含む JSON ドキュメントを返すには、 --output JSON 引数を使用します。

--limit 引数と --offset 引数を使用するには、API バージョンを 2.1 に設定する必要があります

--output JSONを使用すると、リストはジョブ作成日の降順で返されます。--output TABLEを使用すると、リストはジョブ作成日の降順で返され、ジョブ名のアルファベット順にソートされます。

次の例では、ジョブをページングして一度に 10 個のジョブを一覧表示し、結果を JSON 形式で返します。

Bash
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を実行します。

一般的な使用法

Bash
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:

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を実行します。

Bash
databricks jobs run-now --job-id 246
Console
{
"run_id": 122,
"number_in_job": 1
}