Jobs CLI (устаревший версия)

Внимание

Эта документация снята с актуализации, и она, возможно, больше не будет обновляться.

Эта информация относится к устаревшим интерфейсам командной строки Databricks версии 0.18 и ниже. Databricks рекомендует использовать более новую версию Интерфейса командной строки Databricks версии 0.205 или более поздней. См. интерфейс командной строки Databricks. Чтобы найти версию интерфейса командной строки Databricks, выполните команду databricks -v.

Чтобы выполнить миграцию с версии Databricks CLI 0.18 или ниже на версию 0.205 или выше, см. раздел Databricks CLI migration.

Для выполнения подкоманд CLI для заданий Databricks добавьте их к databricks jobs. Задание Databricks запускает подкоманды CLI, добавляя их к databricks runs. Для подкоманд CLI выполнения задач в Databricks см. Runs CLI (устаревшая версия). Вместе эти подкоманда вызывают API заданий и API заданий 2.0.

Внимание

CLI заданий Databricks поддерживает вызовы двух версий Databricks Jobs REST API: версии 2.1 и 2.0. Версия 2.1 добавляет поддержку оркестрации заданий с несколькими задачами; см. Задания Lakeflow и Обновление с API заданий 2.0 до 2.1. Databricks рекомендует вызывать версию 2.1, если у вас нет устаревших скриптов, которые используют версию 2.0 и которые нельзя перенести.

Если не указано иное, сведения об использовании программных средств, приведенные в этой статье, в равной степени актуальны для версий 2.1 и 2.0.

Требования для вызова Jobs REST API 2.1

Чтобы настроить и использовать CLI заданий Databricks (и CLI запусков заданий) для вызова Jobs REST API 2.1, выполните следующие действия.

  1. Обновите CLI до версии 0.16.0 или более поздней.

  2. Выполните одно из следующих действий:

    • Выполните команду databricks jobs configure --version=2.1. При этом параметр jobs-api-version = 2.1 добавляется в файл ~/.databrickscfg в Unix, Linux или macOS или %USERPROFILE%\.databrickscfg в Windows. Все подкоманды CLI заданий (и CLI запусков заданий) будут вызывать Jobs REST API 2.1 по умолчанию.
    • Вручную добавьте параметр jobs-api-version = 2.1 в файл ~/.databrickscfg в Unix, Linux или macOS или %USERPROFILE%\.databrickscfg в Windows. Все подкоманды 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

Чтобы настроить и использовать CLI заданий Databricks (и CLI запусков заданий) для вызова Jobs REST API 2.0, выполните одно из указанных ниже действий.

  • Используйте версию Databricks CLI ниже 0.16.0, либо
  • Обновите интерфейс командной строки до версии X.Y.Z или более поздней, а затем выполните одно из следующих действий:
    • Выполните команду databricks jobs configure --version=2.0. При этом параметр jobs-api-version = 2.0 добавляется в файл ~/.databrickscfg в Unix, Linux или macOS или %USERPROFILE%\.databrickscfg в Windows. Все подкоманды CLI для заданий и их запусков по умолчанию будут вызывать API Jobs REST 2.0.
    • Вручную добавьте параметр jobs-api-version = 2.0 в файл ~/.databrickscfg в Unix, Linux или macOS или %USERPROFILE%\.databrickscfg в Windows. Все подкоманды CLI для заданий и их запусков по умолчанию будут вызывать API Jobs REST 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

Заметки по употреблению CLI для управления заданиями 2.1 и пример запроса

См. Создать в Обновление API заданий с версии 2.0 до 2.1.

Пример полезной нагрузки и ответа для Jobs 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 с параметрами задания для копирования. В этом примере параметры задания с идентификатором 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

В случае успеха вывод не отображается.

Совет

Чтобы удалить несколько заданий, имеющих одинаковый параметр, получите список идентификаторов заданий, соответствующих этому параметру, а затем выполните команду 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 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

Заметки по использованию командной строки Jobs 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 аргументы. По умолчанию список заданий возвращается в виде таблицы, содержащей идентификатор задания и имя задания. Чтобы при необходимости вернуть 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 и пример запроса

См. обновление и сброс в Обновление с Jobs API 2.0 до 2.1.

Пример запроса для CLI Jobs 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
}