ジョブ CLI (レガシ)

重要

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

この情報は、レガシ Databricks CLI バージョン 0.18 以前に適用されます。 Databricks では、代わりにバージョン 0.205 以降の新しい Databricks CLI を使うことをお勧めします。 「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 を呼び出します。

重要

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

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

Jobs REST API 2.1 呼び出しの要件

Jobs REST API 2.1 を呼び出すために Databricks ジョブ CLI (とジョブ実行 CLI) を設定する場合は、次の手順を実行します。

  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) サブコマンドでは、既定で Jobs REST API 2.1 を呼び出します。
    • 設定 jobs-api-version = 2.1 を Unix、Linux、または macOS の ~/.databrickscfg ファイル、または、Windows の %USERPROFILE%\.databrickscfg に手動で追加します。 すべてのジョブ CLI (とジョブ実行 CLI) サブコマンドでは、既定で Jobs REST API 2.1 を呼び出します。
    • オプション --version=2.1 (例 databricks jobs list --version=2.1) を追加して、ジョブ CLI でその呼び出しのみに対して Jobs REST API 2.1 を呼び出すよう指示します。

    上記のアクションのいずれも実行しない場合、ジョブ CLI (とジョブ実行 CLI) では、既定で Jobs REST API 2.0 を呼び出します。

Jobs REST API 2.0 呼び出しの要件

Jobs REST API 2.0 を呼び出すために Databricks ジョブ CLI (とジョブ実行 CLI) を設定し、使用する場合は、次の手順のいずれかを実行します。

  • 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) サブコマンドでは、既定で Jobs REST API 2.0 を呼び出します。
    • 設定 jobs-api-version = 2.0 を Unix、Linux、または macOS の ~/.databrickscfg ファイル、または、Windows の %USERPROFILE%\.databrickscfg に手動で追加します。 すべてのジョブ CLI (とジョブ実行 CLI) サブコマンドでは、既定で Jobs REST API 2.0 を呼び出します。
    • オプション --version=2.1 (例 databricks jobs list --version=2.0) を追加して、ジョブ CLI でその呼び出しのみに対して Jobs REST API 2.0 を呼び出すよう指示します。

上記のアクションのいずれも実行しない場合、ジョブ CLI (とジョブ実行 CLI) では、既定で Jobs 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

Jobs CLI 2.1 の使用に関する注意事項と要求の例

Jobs 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

Jobs CLI 2.1 の使用に関する注意事項と応答の例

Jobs API 2.0 から 2.1 への更新」の「Get」をご覧ください。

Jobs 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

Jobs CLI 2.1 の使用に関する注意事項と応答の例

Jobs API 2.0 から 2.1 への更新」の「リスト」をご覧ください。

Jobs 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 のみ)

API を順次呼び出してすべてのジョブを返すように CLI に指示するには、--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

Jobs CLI 2.1 の使用に関する注意事項と要求の例

Jobs 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
}