Поделиться через


Jobs API 2.0

Внимание

В этой статье описана версия API заданий версии 2.0. Однако Databricks рекомендует использовать API заданий версии 2.2 для новых и существующих клиентов и сценариев. Дополнительные сведения об изменениях в версии 2.2 Jobs API см. обновление с версии 2.1 до 2.2.

С помощью API заданий можно создавать, изменять и удалять задания. Максимально допустимый размер запроса к API заданий — 10 МБ.

Дополнительные сведения об обновленных функциях в более поздних версиях API заданий см. в статье Обновление с API заданий 2.0 до версии 2.1 и Обновление с API заданий 2.1 до версии 2.2.

Предупреждение

Ни в коем случае не прописывайте секреты в коде и не храните их в виде обычного текста. Используйте Secrets API для управления секретами в Databricks CLI. Используйте служебную программу для секретов (dbutils.secrets) для создания ссылок на секреты в записных книжках и заданиях.

Примечание.

Если при выполнении запросов к API заданий происходит ошибка уровня 500, Databricks рекомендует повторять запросы в течение 10 минут (с интервалом не менее 30 секунд между попытками).

Внимание

Чтобы получить доступ к REST API Databricks, необходимо пройти проверку подлинности.

Создать

Конечная точка Метод HTTP
2.0/jobs/create POST

Создать новую работу.

Пример

Этот пример создает задачу, которая запускает выполнение файла JAR каждую ночь в 22:15.

Запрос

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/create \
--data @create-job.json \
| jq .

create-job.json:

{
  "name": "Nightly model training",
  "new_cluster": {
    "spark_version": "7.3.x-scala2.12",
    "node_type_id": "Standard_D3_v2",
    "num_workers": 10
  },
  "libraries": [
    {
      "jar": "dbfs:/my-jar.jar"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2"
      }
    }
  ],
  "timeout_seconds": 3600,
  "max_retries": 1,
  "schedule": {
    "quartz_cron_expression": "0 15 22 * * ?",
    "timezone_id": "America/Los_Angeles"
  },
  "spark_jar_task": {
    "main_class_name": "com.databricks.ComputeModels"
  }
}

Заменить:

  • <databricks-instance> с названием экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • Содержимое create-job.json с полями, подходящими для вашего решения.

В этом примере используется файл .netrc и jq.

Ответ

{
  "job_id": 1
}

Структура запроса

Внимание

  • При выполнении задания в новом кластере заданий оно рассматривается как рабочая (автоматизированная) нагрузка Jobs Compute с учетом цены Jobs Compute.
  • При запуске задания на существующем универсальном кластере оно обрабатывается как нагрузка Универсальных вычислений (интерактивная), с учетом ценообразования Универсальных вычислений.
Имя поля Тип Описание
existing_cluster_id ИЛИ new_cluster STRING ИЛИ NewCluster Если указано existing_cluster_id, идентификатор существующего кластера будет использоваться для всех процессов выполнения этого задания. При выполнении заданий в существующем кластере может потребоваться перезапустить кластер вручную, если он перестанет отвечать на запросы. Для улучшения надежности предлагается выполнять задания на новых кластерах.
Если указан new_cluster, будет предоставлено описание кластера, который будет создан для каждого запуска.
При указании PipelineTask это поле может быть пустым.
notebook_task ИЛИ spark_jar_task OR
spark_python_task ИЛИ spark_submit_task OR
pipeline_task ИЛИ run_job_task
NotebookTask OR SparkJarTask OR SparkPythonTask OR SparkSubmitTask OR PipelineTask OR RunJobTask Если указано "notebook_task", эта задача должна запускать блокнот. Это поле не указывается вместе с spark_jar_task.
Если указано spark_jar_task, это задание должно запускать JAR-файл.
Если указано spark_python_task, это задание должно запускать файл Python.
Если указано spark_submit_task, это задание должно запускаться сценарием spark-submit.
Если выполнено условие pipeline_task, это указывает, что задача должна запускать конвейер DLT.
В случае run_job_task это указывает на то, что данное задание должно запустить другое задание.
name STRING Опциональное имя для задания. Значение по умолчанию — Untitled.
libraries Массив библиотеки Список библиотек (необязательно), которые должны быть установлены в кластере, где будет выполнено задание. Значение по умолчанию — пустой список.
email_notifications JobEmailNotifications Набор адресов (необязательно) электронной почты, на которые приходят уведомления о начале и завершении выполнения этого задания и об его удалении. По умолчанию уведомления по электронной почте не рассылаются.
webhook_notifications WebhookNotifications Необязательный набор системных адресатов для уведомления о начале выполнения, завершении или сбое этого задания.
notification_settings НастройкиУведомленийОРаботе Необязательные параметры уведомлений, используемые при отправке уведомлений в каждую из email_notifications и webhook_notifications для этой задачи.
timeout_seconds INT32 Необязательное время ожидания, применяемое к каждому запуску этой задачи. По умолчанию — без времени ожидания.
max_retries INT32 Необязательное максимальное количество попыток повторного запуска при неудачном выполнении. Процесс выполнения считается неудачным, если он завершается с состоянием result_state FAILED или
INTERNAL_ERROR
life_cycle_state. Значение -1 означает неопределенное количество повторений, а 0 — без повторов. Поведение по умолчанию — никогда не повторять.
min_retry_interval_millis INT32 Минимальный интервал (необязательно) в миллисекундах между неудачным процессом выполнения и последующим повторным процессом выполнения. По умолчанию неудачные запуски повторяются немедленно.
retry_on_timeout BOOL Политика (необязательно), указывающая, следует ли повторять задание по истечении времени ожидания. По умолчанию — не делать попытку по истечении времени ожидания.
schedule CronSchedule Расписание (необязательно) с периодическим выполнением этого задания. Поведение по умолчанию заключается в том, что задание выполняется при активации, нажав кнопку "Выполнить сейчас " в пользовательском интерфейсе заданий или отправляя запрос API в runNow.
max_concurrent_runs INT32 Максимально допустимое количество (необязательно) параллельных процессов выполнения задания.
Задайте это значение, если требуется одновременное выполнение нескольких процессов выполнения одного и того же задания. Это полезно, например, если вы запускаете задание с частыми интервалами и хотите разрешить последовательным запускам перекрываться, или если вы хотите инициировать несколько запусков, которые отличаются входными параметрами.
Этот параметр влияет только на новые запуски. Например, предположим, что параллелизм задания равен 4, и существует 4 параллельных активных процесса выполнения. После этого установка значения одновременных потоков равного 3 не завершит активные процессы выполнения. Однако после этого новые запуски пропускаются, если активных запусков меньше трёх.
Значение не должно превышать 1000. Если установить это значение на 0, все новые запуски будут пропущены. По умолчанию: разрешить только 1 параллельный процесс выполнения.

Структура ответа

Имя поля Тип Описание
job_id INT64 Канонический идентификатор для вновь созданной задачи.

Список

Конечная точка Метод HTTP
2.0/jobs/list GET

Список всех вакансий.

Пример

Запрос

curl --netrc --request GET \
https://<databricks-instance>/api/2.0/jobs/list \
| jq .

Замените <databricks-instance> на название экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.

В этом примере используется файл .netrc и jq.

Ответ

{
  "jobs": [
    {
      "job_id": 1,
      "settings": {
        "name": "Nightly model training",
        "new_cluster": {
          "spark_version": "7.3.x-scala2.12",
          "node_type_id": "Standard_D3_v2",
          "num_workers": 10
        },
        "libraries": [
          {
            "jar": "dbfs:/my-jar.jar"
          },
          {
            "maven": {
              "coordinates": "org.jsoup:jsoup:1.7.2"
            }
          }
        ],
        "timeout_seconds": 100000000,
        "max_retries": 1,
        "schedule": {
          "quartz_cron_expression": "0 15 22 * * ?",
          "timezone_id": "America/Los_Angeles",
          "pause_status": "UNPAUSED"
        },
        "spark_jar_task": {
          "main_class_name": "com.databricks.ComputeModels"
        }
      },
      "created_time": 1457570074236
    }
  ]
}

Структура ответа

Имя поля Тип Описание
jobs Массив задач Список заданий.

Удаление

Конечная точка Метод HTTP
2.0/jobs/delete POST

Удалите задание и отправьте сообщение электронной почты по адресам, указанным в JobSettings.email_notifications. Если задание уже удалено, никакие действия не выполняются. После удаления задания его сведения, его журнал выполнения не отображаются в пользовательском интерфейсе заданий или API. Задача будет гарантированно удалена после выполнения этого запроса. Однако запуски, которые были активны до получения этого запроса, могут все еще быть активными. Они будут завершаться асинхронно.

Пример

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/delete \
--data '{ "job_id": <job-id> }'

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <job-id> с идентификатором задания, например 123.

В этом примере используется файл .netrc.

Структура запроса

Имя поля Тип Описание
job_id INT64 Канонический идентификатор задания, которое нужно удалить. Это обязательное поле.

Получить

Конечная точка Метод HTTP
2.0/jobs/get GET

Получите сведения об одном задании.

Пример

Запрос

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/get?job_id=<job-id>' \
| jq .

Или сделайте так:

curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/get \
--data job_id=<job-id> \
| jq .

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <job-id> с идентификатором задания, например 123.

В этом примере используется файл .netrc и jq.

Ответ

{
  "job_id": 1,
  "settings": {
    "name": "Nightly model training",
    "new_cluster": {
      "spark_version": "7.3.x-scala2.12",
      "node_type_id": "Standard_D3_v2",
      "num_workers": 10
    },
    "libraries": [
      {
        "jar": "dbfs:/my-jar.jar"
      },
      {
        "maven": {
          "coordinates": "org.jsoup:jsoup:1.7.2"
        }
      }
    ],
    "timeout_seconds": 100000000,
    "max_retries": 1,
    "schedule": {
      "quartz_cron_expression": "0 15 22 * * ?",
      "timezone_id": "America/Los_Angeles",
      "pause_status": "UNPAUSED"
    },
    "spark_jar_task": {
      "main_class_name": "com.databricks.ComputeModels"
    }
  },
  "created_time": 1457570074236
}

Структура запроса

Имя поля Тип Описание
job_id INT64 Канонический идентификатор задания, о котором необходимо получить информацию. Это обязательное поле.

Структура ответа

Имя поля Тип Описание
job_id INT64 Канонический идентификатор для этой задачи.
creator_user_name STRING Имя пользователя-создателя. Это поле не будет включено в ответ, если пользователь был удален.
settings JobSettings Параметры для этого задания и всех его процессов выполнения. Эти параметры можно обновить с помощью конечных точек Сброс или Обновление.
created_time INT64 Время, когда задание было создано, указано в миллисекундах с начала UNIX-эпохи (01.01.1970 UTC).

Сброс

Конечная точка Метод HTTP
2.0/jobs/reset POST

Перезаписать все параметры конкретного задания. Используйте конечную точку Обновление для частичного обновления параметров задания.

Пример

В этом примере запрос делает задание 2 идентичным заданию 1 в примере создания.

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/reset \
--data @reset-job.json \
| jq .

reset-job.json:

{
  "job_id": 2,
  "new_settings": {
    "name": "Nightly model training",
    "new_cluster": {
      "spark_version": "7.3.x-scala2.12",
      "node_type_id": "Standard_D3_v2",
      "num_workers": 10
    },
    "libraries": [
      {
        "jar": "dbfs:/my-jar.jar"
      },
      {
        "maven": {
          "coordinates": "org.jsoup:jsoup:1.7.2"
        }
      }
    ],
    "timeout_seconds": 100000000,
    "max_retries": 1,
    "schedule": {
      "quartz_cron_expression": "0 15 22 * * ?",
      "timezone_id": "America/Los_Angeles",
      "pause_status": "UNPAUSED"
    },
    "spark_jar_task": {
      "main_class_name": "com.databricks.ComputeModels"
    }
  }
}

Замена:

  • <databricks-instance> с именем экземпляра рабочего пространства Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • Содержимое reset-job.json с полями, подходящими для вашего решения.

В этом примере используется файл .netrc и jq.

Структура запроса

Имя поля Тип Описание
job_id INT64 Канонический идентификатор для сброса задачи. Это обязательное поле.
new_settings JobSettings Новые параметры задания. Эти параметры полностью заменяют прежние параметры.
Изменения в поле JobSettings.timeout_seconds применяются к активным процессам выполнения. Изменения в других полях применяются только к будущим запускам.

Обновление

Конечная точка Метод HTTP
2.0/jobs/update POST

Добавление, изменение или удаление конкретных параметров существующего задания. Используйте конечную точку Сброс, чтобы перезаписать все параметры задания.

Пример

В этом примере запрос удаляет библиотеки и добавляет параметры уведомлений по электронной почте в задание 1, определенное в примере Создание.

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/update \
--data @update-job.json \
| jq .

update-job.json:

{
  "job_id": 1,
  "new_settings": {
    "existing_cluster_id": "1201-my-cluster",
    "email_notifications": {
      "on_start": ["someone@example.com"],
      "on_success": [],
      "on_failure": []
    }
  },
  "fields_to_remove": ["libraries"]
}

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • Содержимое update-job.json с полями, подходящими для вашего решения.

В этом примере используется файл .netrc и jq.

Структура запроса

Имя поля Тип Описание
job_id INT64 Стандартный идентификатор обновляемого задания. Это обязательное поле.
new_settings JobSettings Новые параметры для задания.
Поля верхнего уровня, указанные в new_settings, за исключением массивов, полностью заменяются. Массивы объединяются на основе соответствующих ключевых полей, таких как task_key или
job_cluster_keyИ записи массива с тем же ключом полностью заменяются. За исключением объединения массивов, частично обновляемые вложенные поля не поддерживаются.
Изменения в поле JobSettings.timeout_seconds применяются к активным процессам выполнения. Изменения в других полях применяются только к будущим запускам.
fields_to_remove Массив объектов STRING. Удалите поля верхнего уровня в параметрах задания. Удаление вложенных полей не поддерживается, за исключением записей из tasks массивов и job_clusters массивов. Например, ниже приведен допустимый аргумент для этого поля:
["libraries", "schedule", "tasks/task_1", "job_clusters/Default"]
Это поле необязательно.

Запустить сейчас

Внимание

  • Рабочая область ограничена 1000 одновременных запусков задач. Ответ 429 Too Many Requests возвращается при запросе на выполнение, которое не может быть запущено немедленно.
  • Число заданий, создаваемых рабочей областью в течение часа, ограничено 10000 (включая "Отправка процессов выполнений"). Это ограничение также влияет на задания, созданные REST API и рабочими процессами ноутбука.
  • Рабочая область может содержать до 12000 сохраненных заданий.
  • Задание может содержать до 100 задач.
Конечная точка Метод HTTP
2.0/jobs/run-now POST

Выполните задание сейчас и возвратите run_id запущенного процесса выполнения.

Совет

Если вы делаете вызов Создать вместе с Запустить сейчас, вместо этого можно использовать конечную точку Отправка процессов выполнений, что позволяет отправлять рабочую нагрузку напрямую без создания задания.

Пример

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/run-now \
--data @run-job.json \
| jq .

run-job.json:

Пример запроса для задания записной книжки:

{
  "job_id": 1,
  "notebook_params": {
    "name": "john doe",
    "age": "35"
  }
}

Пример запроса для JAR-задания:

{
  "job_id": 2,
  "jar_params": ["john doe", "35"]
}

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • Содержимое run-job.json с полями, подходящими для вашего решения.

В этом примере используется файл .netrc и jq.

Структура запроса

Имя поля Тип Описание
job_id INT64
jar_params Массив объектов STRING. Список параметров для заданий с задачами JAR, например "jar_params": ["john doe", "35"]. Параметры будут использоваться для вызова основного метода основного класса, указанного в задаче JAR-файла Spark. Если значение не указано run-now, по умолчанию будет указываться пустой список. jar_params запрещено указывать вместе с notebook_params. Представление JSON этого поля (т. е. {"jar_params":["john doe","35"]}) не может превышать 10 000 байт.
notebook_params Карта ParamPair Сопоставление "ключ-значение" для заданий, в которых используются блокноты, например
"notebook_params": {"name": "john doe", "age": "35"}. Карта передается в записную книжку и доступна через функцию dbutils.widgets.get.
Если значение не указано в run-now, то запуск использует базовые параметры задания.
notebook_params запрещено указывать вместе с jar_params.
Представление JSON данного поля (т. е.
{"notebook_params":{"name":"john doe","age":"35"}}) не может превышать 10 000 байт.
python_params Массив объектов STRING. Список параметров для заданий с задачами Python, например "python_params": ["john doe", "35"]. Параметры будут переданы в файл Python в виде параметров командной строки. Если значение задано в run-now, оно перезапишет параметры, указанные в настройках задания. Представление JSON этого поля (т. е. {"python_params":["john doe","35"]}) не может превышать 10 000 байт.
spark_submit_params Массив объектов STRING. Перечень параметров для заданий, выполняемых с помощью задачи spark-submit, например,
"spark_submit_params": ["--class", "org.apache.spark.examples.SparkPi"]. Параметры будут переданы в сценарий spark-submit в виде параметров командной строки. Если значение задано в run-now, оно перезапишет параметры, указанные в настройках задания. Представление JSON этого поля не может превышать 10 000 байт.
idempotency_token STRING Необязательный токен, обеспечивающий гарантированную идемпотентность запросов на выполнение заданий. Если выполнение с указанным токеном уже существует, запрос не создаст новое выполнение, но вернет идентификатор существующего процесса. При удалении процесса с предоставленным токеном возвращается ошибка.
Если вы указали токен идемпотентности, при сбое можно повторять попытку, пока запрос не станет успешным. Azure Databricks гарантирует, что с использованием этого токена идемпотентности будет выполнен ровно один запуск.
Этот токен должен содержать не более 64 символов.
Дополнительные сведения см. в разделе Как обеспечить идемпотентность заданий.

Структура ответа

Имя поля Тип Описание
run_id INT64 Глобальный уникальный идентификатор вновь запущенного процесса выполнения.
number_in_job INT64 Порядковый номер этого запуска среди всех запусков задания.

Отправка заданий

Внимание

  • Рабочая область ограничена 1000 одновременных запусков задач. Ответ 429 Too Many Requests возвращается при запросе на выполнение, которое не может быть запущено немедленно.
  • Число заданий, создаваемых рабочей областью в течение часа, ограничено 10000 (включая "Отправка процессов выполнений"). Это ограничение также влияет на задания, созданные REST API и рабочими процессами ноутбука.
  • Рабочая область может содержать до 12000 сохранённых заданий.
  • Задание может содержать до 100 задач.
Конечная точка Метод HTTP
2.0/jobs/runs/submit POST

Отправьте задание на однократное выполнение. Эта конечная точка позволяет отправлять рабочую нагрузку напрямую без создания задания. Используйте API jobs/runs/get для проверки состояния процесса выполнения после отправки задания.

Пример

Запрос

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/submit \
--data @submit-job.json \
| jq .

submit-job.json:

{
  "run_name": "my spark task",
  "new_cluster": {
    "spark_version": "7.3.x-scala2.12",
    "node_type_id": "Standard_D3_v2",
    "num_workers": 10
  },
  "libraries": [
    {
      "jar": "dbfs:/my-jar.jar"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2"
      }
    }
  ],
  "spark_jar_task": {
    "main_class_name": "com.databricks.ComputeModels"
  }
}

Замена:

  • <databricks-instance> с названием экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • Содержимое submit-job.json с полями, подходящими для вашего решения.

В этом примере используется файл .netrc и jq.

Ответ

{
  "run_id": 123
}

Структура запроса

Внимание

  • При запуске задания в новом кластере заданий, задание рассматривается как рабочая нагрузка Jobs Compute (автоматизированная), с учетом ценовой политики Jobs Compute.
  • При запуске задания на существующем универсальном кластере оно рассматривается как рабочая нагрузка Универсальных вычислительных мощностей (интерактивная), оплачиваемая согласно ценам на универсальные вычислительные мощности.
Имя поля Тип Описание
existing_cluster_id ИЛИ new_cluster STRING ИЛИ NewCluster Если указано existing_cluster_id, идентификатор существующего кластера будет использоваться для всех процессов выполнения этого задания. При выполнении заданий в существующем кластере может потребоваться перезапустить кластер вручную, если он перестанет отвечать на запросы. Для улучшения надежности предлагается выполнять задания на новых кластерах.
Если указано new_cluster, то для каждого запуска будет создано описание кластера.
При указании PipelineTask это поле может быть пустым.
notebook_task ИЛИ spark_jar_task OR
spark_python_task ИЛИ spark_submit_task OR
pipeline_task ИЛИ run_job_task
NotebookTask OR SparkJarTask OR SparkPythonTask OR SparkSubmitTask OR PipelineTask OR RunJobTask Если указан параметр "notebook_task", это задание должно запускать ноутбук. Это поле не указывается вместе с spark_jar_task.
Если указано spark_jar_task, это задание должно запускать JAR-файл.
Если указано spark_python_task, это задание должно запускать файл Python.
Если указано spark_submit_task, это задание должно запускаться сценарием spark-submit.
Если выполнено условие pipeline_task, это указывает, что задача должна запускать конвейер DLT.
Если run_job_task, это указывает, что данное задание должно запустить другое задание.
run_name STRING Необязательное имя для процесса запуска. Значение по умолчанию — Untitled.
webhook_notifications WebhookNotifications Необязательный набор системных адресатов для уведомления о начале выполнения, завершении или сбое этого задания.
notification_settings НастройкиУведомленийОРаботе Необязательные настройки уведомлений, которые используются при отправке уведомлений каждому webhook_notifications в ходе данного выполнения.
libraries Массив библиотеки Список библиотек (необязательно), которые должны быть установлены в кластере, где будет выполнено задание. Значение по умолчанию — пустой список.
timeout_seconds INT32 Необязательный таймаут, применяемый к каждому запуску этого задания. По умолчанию — без времени ожидания.
idempotency_token STRING Необязательный токен для гарантии идемпотентности запросов на запуск заданий. Если выполнение с указанным токеном уже существует, запрос не создаст новое выполнение, но вернет идентификатор существующего процесса. При удалении процесса с предоставленным токеном возвращается ошибка.
Если вы указали токен идемпотентности, при сбое можно повторять попытку, пока запрос не станет успешным. Azure Databricks гарантирует, что с использованием этого токена идемпотентности будет выполнен ровно один запуск.
Этот токен должен содержать не более 64 символов.
Дополнительные сведения см. в разделе Как обеспечить идемпотентность заданий.

Структура ответа

Имя поля Тип Описание
run_id INT64 Канонический идентификатор для вновь отправленного задания.

список запусков

Конечная точка Метод HTTP
2.0/jobs/runs/list GET

Упорядочьте запуски в порядке убывания по времени начала.

Примечание.

Запуски автоматически удаляются через 60 дней. Если необходимо обращаться к ним дольше 60 дней, следует сохранить старые результаты выполнения до истечения срока их действия. Чтобы экспортировать с использованием пользовательского интерфейса, см. раздел Результаты выполнения задания экспорта. Инструкции по экспорту с помощью API заданий см. в разделе Экспорт выполнений.

Пример

Запрос

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/list?job_id=<job-id>&active_only=<true-false>&offset=<offset>&limit=<limit>&run_type=<run-type>' \
| jq .

Или сделайте так:

curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/list \
--data 'job_id=<job-id>&active_only=<true-false>&offset=<offset>&limit=<limit>&run_type=<run-type>' \
| jq .

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <job-id> с идентификатором задания, например 123.
  • "<true-false> с true или false".
  • <offset> со значением offset.
  • <limit> со значением limit.
  • <run-type> со значением run_type.

В этом примере используется файл .netrc и jq.

Ответ

{
  "runs": [
    {
      "job_id": 1,
      "run_id": 452,
      "number_in_job": 5,
      "state": {
        "life_cycle_state": "RUNNING",
        "state_message": "Performing action"
      },
      "task": {
        "notebook_task": {
          "notebook_path": "/Users/donald@duck.com/my-notebook"
        }
      },
      "cluster_spec": {
        "existing_cluster_id": "1201-my-cluster"
      },
      "cluster_instance": {
        "cluster_id": "1201-my-cluster",
        "spark_context_id": "1102398-spark-context-id"
      },
      "overriding_parameters": {
        "jar_params": ["param1", "param2"]
      },
      "start_time": 1457570074236,
      "end_time": 1457570075149,
      "setup_duration": 259754,
      "execution_duration": 3589020,
      "cleanup_duration": 31038,
      "run_duration": 3879812,
      "trigger": "PERIODIC"
    }
  ],
  "has_more": true
}

Структура запроса

Имя поля Тип Описание
active_only ИЛИ completed_only BOOL ИЛИ BOOL Если active_only имеет значение true, в результаты включаются только активные процессы выполнения, в противном случае — списки активных и завершенных процессов выполнений. Активный запуск — это запуск в состоянии PENDING, RUNNING или TERMINATINGRunLifecycleState. Это поле не может быть true, если completed_only имеет значение true.
Если completed_only имеет значение true, в результаты включаются только завершенные процессы выполнения, в противном случае — списки активных и завершенных процессов выполнений. Это поле не может быть true, если active_only имеет значение true.
job_id INT64 Задание, для которого нужно вывести список выполнений. Если этот параметр не указан, служба заданий будет выводить список запусков для всех заданий.
offset INT32 Смещение первого запуска для возврата относительно самого последнего запуска.
limit INT32 Количество итераций для возврата. Это значение должно быть больше 0 и меньше 1000. Значение по умолчанию — 20. Если в запросе задано ограничение в 0, то служба будет использовать максимальное ограничение.
run_type STRING Тип запусков для возврата. Описание типов процессов выполнения см. в разделе Выполнение.

Структура ответа

Имя поля Тип Описание
runs Массив Run Список запусков от самого недавно начатого до самого последнего.
has_more BOOL Если значение — true, дополнительные процессы выполнения, соответствующие указанному фильтру, доступны для перечисления.

запуск

Конечная точка Метод HTTP
2.0/jobs/runs/get GET

Получение метаданных запуска.

Примечание.

Запуски автоматически удаляются через 60 дней. Если необходимо обращаться к ним дольше 60 дней, следует сохранить старые результаты выполнения до истечения срока их действия. Чтобы экспортировать с использованием пользовательского интерфейса, см. раздел Результаты выполнения задания экспорта. Инструкции по экспорту с помощью API заданий см. в разделе Экспорт выполнений.

Пример

Запрос

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/get?run_id=<run-id>' \
| jq .

Или сделайте так:

curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/get \
--data run_id=<run-id> \
| jq .

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <run-id> с идентификатором выполнения, например 123.

В этом примере используется файл .netrc и jq.

Ответ

{
  "job_id": 1,
  "run_id": 452,
  "number_in_job": 5,
  "state": {
    "life_cycle_state": "RUNNING",
    "state_message": "Performing action"
  },
  "task": {
    "notebook_task": {
      "notebook_path": "/Users/someone@example.com/my-notebook"
    }
  },
  "cluster_spec": {
    "existing_cluster_id": "1201-my-cluster"
  },
  "cluster_instance": {
    "cluster_id": "1201-my-cluster",
    "spark_context_id": "1102398-spark-context-id"
  },
  "overriding_parameters": {
    "jar_params": ["param1", "param2"]
  },
  "start_time": 1457570074236,
  "end_time": 1457570075149,
  "setup_duration": 259754,
  "execution_duration": 3589020,
  "cleanup_duration": 31038,
  "run_duration": 3879812,
  "trigger": "PERIODIC"
}

Структура запроса

Имя поля Тип Описание
run_id INT64 Канонический идентификатор запуска, для которого необходимо получить метаданные. Это обязательное поле.

Структура ответа

Имя поля Тип Описание
job_id INT64 Канонический идентификатор задания, содержащего этот запуск.
run_id INT64 Канонический идентификатор запуска. Этот идентификатор уникален для всех процессов выполнения всех заданий.
number_in_job INT64 Порядковый номер этого запуска среди всех запусков задания. Это значение начинается с 1.
original_attempt_run_id INT64 Если этот процесс выполнения является повторением предыдущей попытки запуска процесса, это поле содержит run_id исходного процесса, в противном случае он совпадает с run_id.
state RunState Результат и состояния жизненного цикла процесса выполнения.
schedule CronSchedule Расписание cron, которое запустило этот запуск, если он был запущен планировщиком периодических процессов.
task JobTask Задача, выполняемая в процессе, если таковая имеется.
cluster_spec ClusterSpec Снимок состояния спецификации кластера задания на момент создания этого запуска.
cluster_instance ClusterInstance Используемый для этого запуска кластер. Если процесс выполнения указан для использования нового кластера, это поле будет задано после того, как служба заданий запросит кластер для выполнения.
overriding_parameters RunParameters Параметры, использованные для этого запуска.
start_time INT64 Время начала этого запуска, выраженное в миллисекундах с 01.01.1970 по UTC. Это время может не совпадать со временем начала выполнения задачи, например, если задание планируется запускать в новом кластере, это время выполнения вызова на создание кластера.
end_time INT64 Время, когда это выполнение завершилось, в миллисекундах эпохи UNIX (миллисекунды с 01.01.1970 UTC). Это поле будет иметь значение 0, если задание все еще выполняется.
setup_duration INT64 Время в миллисекундах, необходимое для настройки кластера. Для процессов выполнения, выполняемых в новых кластерах это время создания кластера, для процессов выполнения в существующих кластерах это время должно быть очень коротким. Общая длительность пробега — это сумма setup_duration,
execution_duration, и cleanup_duration. Поле setup_duration имеет значение 0 для выполнения многофакторного задания. Общая длительность выполнения многозадачного задания — это значение времени выполнения.
run_duration поле.
execution_duration INT64 Время в миллисекундах, затраченное на выполнение команд в JAR-файле или записной книжке, пока они не были завершены, завершились сбоем, истекло время ожидания, было отменено или произошла непредвиденная ошибка. Общая длительность выполнения — это сумма setup_duration, execution_duration и
cleanup_duration. Поле execution_duration имеет значение 0 для выполнения многофакторного задания. Общая длительность выполнения многофакторного задания — это значение run_duration поля.
cleanup_duration INT64 Время в миллисекундах, затраченное на завершение работы кластера и очистку связанных артефактов. Общая длительность выполнения — это сумма setup_duration, execution_durationа также cleanup_duration. Поле cleanup_duration имеет значение 0 для выполнения многофакторного задания. Общая длительность выполнения многофакторного задания — это значение run_duration поля.
run_duration INT64 Время в миллисекундах, которое потребовалось для выполнения задания и всех его исправлений. Это поле устанавливается только для выполнения многозадачных заданий, а не для выполнения отдельных задач. Длительность выполнения задачи является суммой времени, затраченного на ее выполнение.
setup_duration, execution_durationи cleanup_duration.
trigger TriggerType Тип триггера, запустившего этот запуск.
creator_user_name STRING Имя пользователя-создателя. Это поле не будет включено в ответ, если пользователь был удален
run_page_url STRING URL-адрес страницы сведений о процессе выполнения.

Экспорт процессов выполнения

Конечная точка Метод HTTP
2.0/jobs/runs/export GET

Экспорт и получение задачи выполнения задания.

Примечание.

Только запуски ноутбуков можно экспортировать в формате HTML. Экспорт процессов выполнения других типов завершится ошибкой.

Пример

Запрос

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/export?run_id=<run-id>' \
| jq .

Или сделайте так:

curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/export \
--data run_id=<run-id> \
| jq .

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <run-id> с идентификатором выполнения, например 123.

В этом примере используется файл .netrc и jq.

Ответ

{
  "views": [
    {
      "content": "<!DOCTYPE html><html><head>Head</head><body>Body</body></html>",
      "name": "my-notebook",
      "type": "NOTEBOOK"
    }
  ]
}

Чтобы извлечь записную книжку HTML из ответа JSON, скачайте и выполните этот сценарий Python.

Примечание.

Текст записной книжки в объекте __DATABRICKS_NOTEBOOK_MODEL кодируется.

Структура запроса

Имя поля Тип Описание
run_id INT64 Канонический идентификатор для запуска. Это обязательное поле.
views_to_export ViewsToExport Представления для экспорта (CODE (КОД), DASHBOARDS (ПАНЕЛИ МОНИТОРИНГА) или ALL (ВСЕ)). По умолчанию — CODE.

Структура ответа

Имя поля Тип Описание
views Массив ViewItem Экспортированное содержимое в формате HTML (по одному для каждого элемента представления).

Отмена запуска

Конечная точка Метод HTTP
2.0/jobs/runs/cancel POST

Отменить выполнение задания. Так как выполнение отменяется асинхронно, по завершении этого запроса процесс выполнения может все еще выполняться. В ближайшее время запуск будет завершён. Если выполнение уже находится в терминальном состоянии life_cycle_state, этот метод не выполняется.

Эта конечная точка проверяет допустимость параметра run_id и для недопустимых параметров возвращает код состояния HTTP 400.

Пример

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/cancel \
--data '{ "run_id": <run-id> }'

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <run-id> с идентификатором выполнения, например 123.

В этом примере используется файл .netrc.

Структура запроса

Имя поля Тип Описание
run_id INT64 Канонический идентификатор выполнения, которое нужно отменить. Это обязательное поле.

Запуски отменяют всё

Конечная точка Метод HTTP
2.0/jobs/runs/cancel-all POST

Отмените все активные исполнения задачи. Поскольку запуск отменяется асинхронно, это не мешает началу новых запусков.

Эта конечная точка проверяет допустимость параметра job_id и для недопустимых параметров возвращает код состояния HTTP 400.

Пример

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/cancel-all \
--data '{ "job_id": <job-id> }'

Замена:

  • <databricks-instance> с именем экземпляра пространства работы Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <job-id> с идентификатором задания, например 123.

В этом примере используется файл .netrc.

Структура запроса

Имя поля Тип Описание
job_id INT64 Канонический идентификатор задания для отмены всех запусков. Это обязательное поле.

Запуски выдают результаты

Конечная точка Метод HTTP
2.0/jobs/runs/get-output GET

Получение выходных данных и метаданных процесса выполнения отдельной задачи. Если задача записной книжки возвращает значение через вызов функции dbutils.notebook.exit(), эту конечную точку можно использовать для получения этого значения. Azure Databricks ограничивает API, возвращая только первые 5 МБ выходных данных. Чтобы возвратить больший результат, можно сохранить результаты задания в службе облачного хранения.

Эта конечная точка проверяет допустимость параметра run_id и для недопустимых параметров возвращает код состояния HTTP 400.

Запуски автоматически удаляются через 60 дней. Если необходимо обращаться к ним дольше 60 дней, следует сохранить старые результаты выполнения до истечения срока их действия. Чтобы экспортировать с использованием пользовательского интерфейса, см. раздел Результаты выполнения задания экспорта. Инструкции по экспорту с помощью API заданий см. в разделе Экспорт выполнений.

Пример

Запрос

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/get-output?run_id=<run-id>' \
| jq .

Или сделайте так:

curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/get-output \
--data run_id=<run-id> \
| jq .

Заменить:

  • <databricks-instance> с именем экземпляра рабочего пространства Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <run-id> с идентификатором выполнения, например 123.

В этом примере используется файл .netrc и jq.

Ответ

{
  "metadata": {
    "job_id": 1,
    "run_id": 452,
    "number_in_job": 5,
    "state": {
      "life_cycle_state": "TERMINATED",
      "result_state": "SUCCESS",
      "state_message": ""
    },
    "task": {
      "notebook_task": {
        "notebook_path": "/Users/someone@example.com/my-notebook"
      }
    },
    "cluster_spec": {
      "existing_cluster_id": "1201-my-cluster"
    },
    "cluster_instance": {
      "cluster_id": "1201-my-cluster",
      "spark_context_id": "1102398-spark-context-id"
    },
    "overriding_parameters": {
      "jar_params": ["param1", "param2"]
    },
    "start_time": 1457570074236,
    "setup_duration": 259754,
    "execution_duration": 3589020,
    "cleanup_duration": 31038,
    "run_duration": 3879812,
    "trigger": "PERIODIC"
  },
  "notebook_output": {
    "result": "the maybe truncated string passed to dbutils.notebook.exit()"
  }
}

Структура запроса

Имя поля Тип Описание
run_id INT64 Канонический идентификатор для запуска. Для работы с несколькими задачами это run_id результат выполнения задачи. См. Вывод результатов выполнения. Это обязательное поле.

Структура ответа

Имя поля Тип Описание
notebook_output ИЛИ error NotebookOutput ИЛИ STRING Если указано notebook_output, выходные данные задачи записной книжки, если доступны. Задача записной книжки, которая завершается (успешно или с ошибкой) без вызова
dbutils.notebook.exit() считается, что у него пустой вывод. Это поле будет установлено, но его значение результата будет пустым.
При ошибке, появляется сообщение об ошибке, указывающее на причину недоступности выходных данных. Сообщение не структурировано, и его точный формат может измениться.
metadata Выполнить Все сведения о процессе выполнения, кроме сведений о выходных данных.

Удаление запусков

Конечная точка Метод HTTP
2.0/jobs/runs/delete POST

Удалите неактивный запуск. Возвращает ошибку, если процесс выполнения активен.

Пример

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/delete \
--data '{ "run_id": <run-id> }'

Замена:

  • <databricks-instance> с именем экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
  • <run-id> с идентификатором выполнения, например 123.

В этом примере используется файл .netrc.

Структура запроса

Имя поля Тип Описание
run_id INT64 Канонический идентификатор процесса выполнения, для которого извлекаются метаданные.

Структуры данных

В этом разделе рассматриваются следующие вопросы.

ABFSStorageInfo

Сведения о хранилище Azure Data Lake Storage (ADLS).

Имя поля Тип Описание
destination STRING Место назначения файла. Пример: abfss://...

Автомасштабирование

Диапазон, определяющий минимальное и максимальное число рабочих узлов кластера.

Имя поля Тип Описание
min_workers INT32 Минимальное количество работников, до которого кластер может уменьшиться при недостаточной загрузке. Это также начальное количество рабочих, которых кластер будет иметь после создания.
max_workers INT32 Максимальное число рабочих, до которого кластер может масштабироваться при перегрузке. Значение max_workers должно быть строго больше значения min_workers.

AzureAttributes

Атрибуты, заданные при создании кластера и относящиеся к Azure.

Имя поля Тип Описание
first_on_demand INT32 Первые first_on_demand узлы кластера будут размещены на экземплярах по требованию. Это значение должно быть больше 0, иначе проверка создания кластера завершается неудачно. Если это значение больше или равно текущему размеру кластера, все узлы будут размещены на экземплярах по запросу. Если это значение меньше текущего размера кластера, узлы first_on_demand будут размещены на экземплярах по требованию, а оставшиеся узлы будут размещены на резервных экземплярах. Это значение не влияет на размер кластера и не может быть изменено в течение всего времени существования кластера.
availability AzureAvailability Тип доступности, используемый для всех последующих узлов после first_on_demand.
spot_bid_max_price DOUBLE Максимальная цена, используемая для спотовых экземпляров Azure. Вы можете установить значение, большее или равное текущей спотовой цене. Кроме того, вы можете задать значение -1 (по умолчанию), что означает, что экземпляр не может быть исключён на основе цены. Цена экземпляра будет равна текущей цене на точечные экземпляры или цене на экземпляр категории "Стандартный". Вы можете просмотреть исторические цены и показатель частоты вытеснения на портале Azure.

Доступность Azure

Тип поведения доступности экземпляра Azure.

Тип Описание
SPOT_AZURE Используйте точечные экземпляры.
ON_DEMAND_AZURE Используйте экземпляры по запросу.
SPOT_WITH_FALLBACK_AZURE Предпочтительно использовать точечные экземпляры, но возвращаться к экземплярам по запросу, если не удается получить точечные (например, если цены на точечные экземпляры Azure слишком высоки или квоты исчерпаны). Не применяется к доступности бассейна.

КластерИнстанция

Идентификаторы для кластера и контекста Spark, используемые процессом выполнения. Эти два значения вместе обозначают контекст выполнения в течение всего времени.

Имя поля Тип Описание
cluster_id STRING Канонический идентификатор кластера, используемого процессом выполнения. Это поле всегда доступно для запусков в существующих кластерах. Для запусков в новых кластерах они становятся доступными сразу после создания кластера. Это значение можно использовать для просмотра журналов, перейдя к /#setting/sparkui/$cluster_id/driver-logs. Журналы по-прежнему будут доступны по завершении процесса выполнения.
Ответ не будет включать это поле, если идентификатор еще не доступен.
spark_context_id STRING Канонический идентификатор контекста Spark, используемого процессом выполнения. Это поле будет заполнено после запуска процесса выполнения. Это значение можно использовать для просмотра пользовательского интерфейса Spark, перейдя к /#setting/sparkui/$cluster_id/$spark_context_id. Пользовательский интерфейс Spark будет по-прежнему доступен после завершения процесса выполнения.
Ответ не будет включать это поле, если идентификатор еще не доступен.

ClusterLogConf

Путь к журналу кластера.

Имя поля Тип Описание
dbfs Расположение журнала кластера в DBFS. Необходимо указать назначение. Например: { "dbfs" : { "destination" : "dbfs:/home/cluster_log" } }

СпецификацияКластера

Внимание

  • При запуске задания в новом кластере заданий оно рассматривается как автоматизированная рабочая нагрузка Jobs Compute, подлежащая ценообразованию Jobs Compute.
  • При запуске задания в существующем универсальном кластере оно рассматривается как нагрузка Универсальных вычислений (интерактивная), подлежащая ценообразованию Универсальных вычислений.
Имя поля Тип Описание
existing_cluster_id ИЛИ new_cluster STRING ИЛИ NewCluster Если указано existing_cluster_id, идентификатор существующего кластера будет использоваться для всех процессов выполнения этого задания. При выполнении заданий в существующем кластере может потребоваться перезапустить кластер вручную, если он перестанет отвечать на запросы. Для улучшения надежности предлагается выполнять задания на новых кластерах.
Если указан параметр new_cluster, будет создано описание кластера для каждого процесса выполнения.
При указании PipelineTask это поле может быть пустым.
libraries Массив библиотеки Список библиотек (необязательно), которые должны быть установлены в кластере, где будет выполнено задание. Значение по умолчанию — пустой список.

Тег Кластера

Определение тега кластера.

Тип Описание
STRING Ключ тега. Ключ должен соответствовать следующим требованиям:
  • От 1 до 512 символов длиной
  • Не содержит ни одного из символов <>%*&+?\\/
  • Не начинается с azure, microsoftили windows
STRING Значение тега. Длина значения должна быть не более 256 символов стандарта UTF-8.

Расписание Cron

Имя поля Тип Описание
quartz_cron_expression STRING Выражение cron с использованием синтаксиса Quartz, описывающее расписание для задания. Дополнительные сведения см. в разделе Триггер Cron. Это обязательное поле.
timezone_id STRING Идентификатор часового пояса Java. Расписание для задачи будет определено в соответствии с этим часовым поясом. Дополнительные сведения см. в разделе Часовой пояс Java. Это обязательное поле.
pause_status STRING Укажите, приостановлено ли это расписание или нет. Либо “PAUSED” (ПРИОСТАНОВЛЕНО), либо “UNPAUSED” (НЕПРИОСТАНОВЛЕНО).

DbfsStorageInfo

Сведения о хранилище DBFS.

Имя поля Тип Описание
destination STRING Назначение DBFS. Пример: dbfs:/my/path

Информация о хранилище файлов

Сведения о хранилище файлов.

Примечание.

Этот тип расположения доступен только для кластеров, настроенных с помощью служб контейнеров Databricks.

Имя поля Тип Описание
destination STRING Место назначения файла. Пример: file:/my/file.sh

InitScriptInfo

Путь к скрипту инициализации.

Инструкции по использованию скриптов инициализации со службами контейнеров Databricks см. в разделе Использование скрипта инициализации.

Примечание.

Тип хранилища файлов (имя поля: file) доступен только для кластеров, настроенных с помощью служб контейнеров Databricks. Смотрите FileStorageInfo.

Имя поля Тип Описание
workspace OR dbfs (не рекомендуется)
ИЛИ abfss
WorkspaceStorageInfo
DbfsStorageInfo (не рекомендуется)
ABFSStorageInfo
Расположение рабочей области скрипта init. Необходимо указать назначение. Например,
{ "workspace" : { "destination" : "/Users/someone@domain.com/init_script.sh" } }
(Устаревший) Местоположение скрипта инициализации в DBFS. Необходимо указать назначение. Например,
{ "dbfs" : { "destination" : "dbfs:/home/init_script" } }
Расположение скрипта init в Azure Data Lake Storage (ADLS). Необходимо указать назначение. Например: { "abfss": { "destination" : "abfss://..." } }

Задание

Имя поля Тип Описание
job_id INT64 Канонический идентификатор для этой задачи.
creator_user_name STRING Имя пользователя-создателя. Это поле не будет включено в ответ, если пользователь был уже удален.
run_as STRING Имя пользователя, от имени которого будет выполняться задание. run_as основывается на текущих параметрах задания и назначается создателю задания, если управление доступом к заданию отключено, или разрешению is_owner, если управление доступом включено.
settings JobSettings Параметры для этого задания и всех его процессов выполнения. Эти параметры можно обновить с помощью метода resetJob.
created_time INT64 Время, когда задание было создано, указано в миллисекундах с начала UNIX-эпохи (01.01.1970 UTC).

Уведомления о работе по электронной почте

Внимание

Поля on_start, on_success и on_failure принимают только латинские символы (кодировка ASCII). При использовании не-ASCII символов будет возвращена ошибка. Примерами недопустимых не-ASCII символов , являются китайские и японские иероглифы, а также эмодзи.

Имя поля Тип Описание
on_start Массив объектов STRING. Список адресов электронной почты, на которые будут отправлены уведомления о начале процесса выполнения. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются.
on_success Массив объектов STRING. Список адресов электронной почты, на которые будут отправлены уведомления при успешном завершении процесса выполнения. Запуск считается успешно завершенным, если он заканчивается на TERMINATEDlife_cycle_state и SUCCESSFULresult_state. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются.
on_failure Массив объектов STRING. Список адресов электронной почты, на которые будут отправлены уведомления о неудачном завершении процесса выполнения. Процесс выполнения считается завершенным неудачно, если он заканчивается со значением INTERNAL_ERROR
life_cycle_state или SKIPPED, FAILED или TIMED_OUT result_state. Если это не указано при создании задания, сбросе или обновлении, список пуст, и уведомления не отправляются.
on_duration_warning_threshold_exceeded Массив объектов STRING. Список адресов электронной почты, которые необходимо уведомить, когда длительность выполнения превышает пороговое значение, указанное для RUN_DURATION_SECONDS метрики в health поле. Если в поле RUN_DURATION_SECONDS для задачи не указано правило для метрики health, уведомления не отправляются.
no_alert_for_skipped_runs BOOL Если значение — true, не отправлять электронные письма получателям, указанным в on_failure, если запуск пропускается.
Имя поля Тип Описание
on_start Массив вебхуков Webhook Необязательный список системных назначений, которые будут получать уведомления при запуске. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются. Для свойства on_start можно указать не более 3 мест назначения.
on_success Массив Webhook Необязательный список адресов системы, чтобы получать уведомления при успешном завершении работы. Запуск считается успешно завершенным, если он заканчивается на TERMINATEDlife_cycle_state и SUCCESSFULresult_state. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются. Для свойства on_success можно указать не более 3 мест назначения.
on_failure Массив вебхуков Webhook Необязательный список системных адресатов для получения уведомлений при неудачном завершении выполнения. Процесс выполнения считается завершенным неудачно, если он заканчивается со значением INTERNAL_ERROR
life_cycle_state или SKIPPED, FAILED или TIMED_OUT result_state. Если это не указано при создании задания, сбросе или обновлении, список пуст, и уведомления не отправляются. Для свойства on_failure можно указать не более 3 мест назначения.
on_duration_warning_threshold_exceeded Массив Webhook Необязательный список системных пунктов назначения для уведомления, когда продолжительность запуска превышает пороговое значение, указанное для метрики RUN_DURATION_SECONDS в поле health. Для свойства on_duration_warning_threshold_exceeded можно указать не более 3 мест назначения.

Настройки уведомления о работе

Имя поля Тип Описание
no_alert_for_skipped_runs BOOL Если это так, не отправляйте уведомления получателям, указанным в on_failure, если выполнение пропущено.
no_alert_for_canceled_runs BOOL Если значение true, не отправляйте уведомления получателям, указанным в on_failure случае отмены выполнения.
alert_on_last_attempt BOOL Если задано значение true, не отправляйте уведомления получателям, указанным on_start для повторных запусков, и не отправляйте уведомления получателям, указанным on_failure до последнего повтора выполнения.

Настройки задания

Внимание

  • При выполнении задания в новом кластере заданий оно рассматривается как рабочая (автоматизированная) нагрузка Jobs Compute с учетом цены Jobs Compute.
  • При выполнении задания в существующем универсальном кластере оно обрабатывается как нагрузка на вычисления общего назначения (интерактивная) и подлежит ценообразованию на вычисления общего назначения.

Параметры для задания. Эти параметры можно обновить с помощью метода resetJob.

Имя поля Тип Описание
existing_cluster_id ИЛИ new_cluster STRING ИЛИ NewCluster Если указано existing_cluster_id, идентификатор существующего кластера будет использоваться для всех процессов выполнения этого задания. При выполнении заданий в существующем кластере может потребоваться перезапустить кластер вручную, если он перестанет отвечать на запросы. Для улучшения надежности предлагается выполнять задания на новых кластерах.
Если new_cluster, для каждого запуска будет создано описание кластера.
При указании PipelineTask это поле может быть пустым.
notebook_task ИЛИ spark_jar_task OR
spark_python_task ИЛИ spark_submit_task OR
pipeline_task ИЛИ run_job_task
NotebookTask OR SparkJarTask OR SparkPythonTask OR SparkSubmitTask OR PipelineTask OR RunJobTask Если задан параметр "notebook_task", это задание должно запускать блокнот. Это поле не указывается вместе с spark_jar_task.
Если указано spark_jar_task, это задание должно запускать JAR-файл.
Если указано spark_python_task, это задание должно запускать файл Python.
Если указано spark_submit_task, это задание должно запускаться сценарием spark-submit.
Если выполнено условие pipeline_task, это указывает, что задача должна запускать конвейер DLT.
Если установлено run_job_task, это означает, что данная задача должна запустить другую задачу.
name STRING Опциональное имя для задания. Значение по умолчанию — Untitled.
libraries Массив библиотеки Список библиотек (необязательно), которые должны быть установлены в кластере, где будет выполнено задание. Значение по умолчанию — пустой список.
email_notifications JobEmailNotifications Набор адресов электронной почты (необязательно), на которые будут отправлено уведомление о запуске или завершении процессов выполнения этого задания, а также об удалении этого задания. По умолчанию уведомления по электронной почте не рассылаются.
webhook_notifications WebhookNotifications Необязательный набор системных адресатов для уведомления о начале выполнения, завершении или сбое этого задания.
notification_settings НастройкиУведомленийОРаботе Необязательные параметры уведомлений, используемые при отправке уведомлений в каждую из email_notifications и webhook_notifications для этой задачи.
timeout_seconds INT32 Необязательный тайм-аут, применяемый ко всем запускам этой задачи. По умолчанию — без времени ожидания.
max_retries INT32 Максимальное количество повторных попыток при неудачном выполнении, которое можно задать по желанию. Процесс выполнения считается неудачным, если он завершается с состоянием FAILED result_state или
INTERNAL_ERROR
life_cycle_state. Значение -1 означает неопределенное количество повторений, а 0 — без повторов. Поведение по умолчанию — никогда не повторять.
min_retry_interval_millis INT32 Минимальный интервал (необязательно) в миллисекундах между попытками. По умолчанию неудачные запуски повторяются немедленно.
retry_on_timeout BOOL Политика (необязательно), указывающая, следует ли повторять задание по истечении времени ожидания. По умолчанию — не делать попытку по истечении времени ожидания.
schedule CronSchedule Расписание (необязательно) с периодическим выполнением этого задания. По умолчанию: задание будет запускаться только при нажатии кнопки «Запустить сейчас» в пользовательском интерфейсе заданий или отправкой запроса API в
runNow.
max_concurrent_runs INT32 Максимально допустимое количество (необязательно) параллельных процессов выполнения задания.
Задайте это значение, если требуется одновременное выполнение нескольких процессов выполнения одного и того же задания. Это полезно, например, если вы запускаете задание с частыми интервалами и хотите разрешить последовательным запускам перекрываться, или если вы хотите инициировать несколько запусков, которые отличаются входными параметрами.
Этот параметр влияет только на новые запуски. Например, предположим, что параллелизм задания равен 4, и существует 4 параллельных активных процесса выполнения. После этого установка параллелизма на 3 не завершит ни одного из активных процессов выполнения. Однако после этого новые запуски будут пропускаться, если активных останется менее 3.
Значение не должно превышать 1000. Если установить это значение на 0, все новые запуски будут пропущены. По умолчанию: разрешить только 1 параллельный процесс выполнения.
health ПравилаЗдоровьяРабот Необязательный набор правил здоровья, определенных для работы.

Рабочая задача

Имя поля Тип Описание
notebook_task ИЛИ spark_jar_task OR
spark_python_task ИЛИ spark_submit_task OR
pipeline_task ИЛИ run_job_task
NotebookTask OR SparkJarTask OR SparkPythonTask OR SparkSubmitTask OR PipelineTask OR RunJobTask Если указано notebook_task, это задание должно запускать ноутбук. Это поле не указывается вместе с spark_jar_task.
Если указано spark_jar_task, это задание должно запускать JAR-файл.
Если указано spark_python_task, это задание должно запускать файл Python.
Если указано spark_submit_task, это задание должно запускаться сценарием spark-submit.
Если выполнено условие pipeline_task, это указывает, что задача должна запускать конвейер DLT.
Если выполняется run_job_task, это указывает, что данное задание должно запустить другое задание.

ПравилоЗдоровьяРаботы

Имя поля Тип Описание
metric STRING Указывает метрику состояния, которая оценивается в соответствии с определенным правилом состояния. Допустимые значения — RUN_DURATION_SECONDS.
operator STRING Указывает оператор, используемый для сравнения значения метрик работоспособности с указанным пороговым значением. Допустимые значения — GREATER_THAN.
value INT32 Указывает пороговое значение, которого метрика работоспособности должна достичь, чтобы соответствовать правилу работоспособности.

ПравилаЗдоровьяРаботы

Имя поля Тип Описание
rules Массив JobsHealthRule Необязательный набор правил здоровья, которые можно определить для задания.

Библиотека

Имя поля Тип Описание
jarИЛИ ИЛИ egg ИЛИ whl
pypiИЛИ ИЛИ mavencran
STRING, STRING, STRING, PythonPyPiLibrary, MavenLibrary или RCranLibrary Если используется jar, указывается универсальный код ресурса (URI) устанавливаемой библиотеки JAR. Поддерживаются URI DBFS и ADLS (abfss). Например, { "jar": "dbfs:/mnt/databricks/library.jar" } или
{ "jar": "abfss://<container-path>/library.jar" }. Если используется ADLS, убедитесь, что кластер имеет доступ на чтение в библиотеке.
Если это egg, то указывается URI устанавливаемого egg. Поддерживаются URI DBFS и ADLS. Например, { "egg": "dbfs:/my/egg" } или
{ "egg": "abfss://<container-path>/egg" }.
Если whl, укажите URI wheel или URI сжатого wheels для установки. Поддерживаются URI DBFS и ADLS. Например, { "whl": "dbfs:/my/whl" } или
{ "whl": "abfss://<container-path>/whl" }. Если используется ADLS, убедитесь, что кластер имеет доступ на чтение в библиотеке. Кроме того, wheel имя файла должно соответствовать правильной конвенции. Если необходимо установить zippped wheels , то суффикс имени файла должен быть .wheelhouse.zip.
Если используется pypi, указывается спецификация устанавливаемой библиотеки PyPI. Указание поля repo является необязательным. Если оно не указано, используется индекс pip по умолчанию. Например:
{ "package": "simplejson", "repo": "https://my-repo.com" }
Если используется maven, указывается спецификация устанавливаемой библиотеки Maven. Например:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }
Если используется cran, указывается спецификация устанавливаемой библиотеки CRAN.

MavenLibrary

Имя поля Тип Описание
coordinates STRING Координаты Maven в формате Gradle. Например: org.jsoup:jsoup:1.7.2. Это обязательное поле.
repo STRING Репозиторий Maven, из которого будет устанавливаться пакет Maven. Если этот параметр опущен, поиск выполняется как в центральном репозитории Maven, так и в пакетах Spark.
exclusions Массив объектов STRING. Список зависимостей для исключения. Например: ["slf4j:slf4j", "*:hadoop-client"].
Исключения зависимостей Maven: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html.

Новый кластер

Имя поля Тип Описание
num_workers ИЛИ autoscale INT32 ИЛИ AutoScale Если указано num_workers, это количество рабочих узлов, которые должен иметь этот кластер. В кластере присутствует один драйвер Spark и исполнители num_workers для общего числа узлов: num_workers + 1 Spark.
Примечание. При чтении свойств кластера это поле отражает желаемое количество рабочих узлов, а не фактическое текущее количество. Например, если размер кластера изменяется с 5 до 10 рабочих ролей, это поле будет немедленно обновлено, чтобы отразить целевой размер 10 рабочих ролей, а рабочие роли, перечисленные в spark_info, постепенно увеличиваются с 5 до 10 по мере подготовки новых узлов.
Если используется автомасштабирование, потребуются параметры для автоматического масштабирования кластеров в зависимости от нагрузки.
spark_version STRING Версия Spark для кластера. Список доступных версий Spark можно получить с помощью вызова GET 2.0/clusters/spark-versions. Это обязательное поле.
spark_conf SparkConfPair Объект с набором необязательных, определяемых пользователем пар "ключ-значение" в конфигурации Spark. Кроме того, можно передать строку дополнительных параметров JVM драйверу и исполнителям через
spark.driver.extraJavaOptions и spark.executor.extraJavaOptions соответственно.
Пример конфигураций Spark:
{"spark.speculation": true, "spark.streaming.ui.retainedBatches": 5} или
{"spark.driver.extraJavaOptions": "-verbose:gc -XX:+PrintGCDetails"}
node_type_id STRING Используя отдельное значение, это поле кодирует доступные ресурсы для каждого узла Spark в этом кластере. Например, узлы Spark можно подготовить и оптимизировать для памяти или вычислительных рабочих нагрузок Список доступных типов узлов можно получить с помощью вызова GET 2.0/clusters/list-node-types. Это поле, поле или политика кластера, instance_pool_id указывающая идентификатор типа узла или идентификатор пула экземпляров, является обязательным.
driver_node_type_id STRING Тип узла драйвера Spark. Это поле является необязательным. Если значение не задано, тип узла драйвера устанавливается в то же значение, что и параметр node_type_id, определенный выше.
custom_tags ClusterTag Объект, содержащий набор тегов для кластерных ресурсов. В дополнение к default_tags Databricks помечает этими тегами все кластерные ресурсы (например, виртуальные машины).
Примечание.
  • Теги не поддерживаются в устаревших типах узлов, таких как оптимизированные для вычислений и оптимизированные для памяти
  • Databricks позволяет не более 45 пользовательских тегов
cluster_log_conf ClusterLogConf Конфигурация доставки журналов Spark в долгосрочное место хранения. Для одного кластера можно указать только одно назначение. Если для conf задано значение, журналы будут доставляться в место назначения каждые 5 mins. Место назначения журналов драйверов — <destination>/<cluster-id>/driver, а место назначения журналов исполнителя — <destination>/<cluster-id>/executor.
init_scripts Массив InitScriptInfo Конфигурация для хранения скриптов инициализации. Можно указать любое количество скриптов. Скрипты выполняются последовательно в указанном порядке. Если для cluster_log_conf задано значение, журналы скриптов инициализации будут отправляться в
<destination>/<cluster-id>/init_scripts.
spark_env_vars SparkEnvPair Объект, содержащий набор необязательных пар "ключ-значение", определяемых пользователем переменных среды. Пара "ключ-значение" в виде (X, Y) экспортируется без изменений (т. е.
export X='Y') при запуске драйвера и рабочих процессов.
Чтобы указать дополнительный набор SPARK_DAEMON_JAVA_OPTS, рекомендуется добавить их в $SPARK_DAEMON_JAVA_OPTS, как показано в следующем примере. Кроме того, это гарантирует, что будут включены все управляемые переменные среды Databricks, используемые по умолчанию.
Примеры переменных среды Spark:
{"SPARK_WORKER_MEMORY": "28000m", "SPARK_LOCAL_DIRS": "/local_disk0"} или
{"SPARK_DAEMON_JAVA_OPTS": "$SPARK_DAEMON_JAVA_OPTS -Dspark.shuffle.service.enabled=true"}
enable_elastic_disk BOOL Автоматическое масштабирование локального хранилища: если включено, этот кластер динамически получает дополнительное место на диске, когда у его Spark-исполнителей уменьшается свободное место на диске. Дополнительные сведения см. в статье "Включение автоматического масштабирования локального хранилища ".
driver_instance_pool_id STRING Необязательный идентификатор пула экземпляров, используемого для узла драйвера. Необходимо также указать instance_pool_id. Для получения подробной информации обратитесь к API пулов экземпляров.
instance_pool_id STRING Необязательный идентификатор пула экземпляров, используемый для узлов кластеров. При наличии driver_instance_pool_id,
instance_pool_id используется только для рабочих узлов. В противном случае он используется как для узла драйвера, так и для рабочих узлов. Дополнительные сведения см. в API пулов экземпляров.

NotebookOutput

Имя поля Тип Описание
result STRING Значение, передаваемое в функцию dbutils.notebook.exit(). Azure Databricks ограничивает API, чтобы он возвращал только первые 1 МБ значения. Если результат велик, ваше задание может сохранять эти результаты в облачном хранилище. Это поле будет отсутствовать, если функция dbutils.notebook.exit() никогда не вызывалась.
truncated BOOLEAN Указывает, был ли результат усечен.

NotebookTask

Размер всех выходных ячеек ограничен 8 МБ. Если выходные данные ячейки имеют больший размер, остальная часть процесса выполнения будет отменена, а процесс будет отмечен как неудачный. В этом случае также могут отсутствовать данные из других ячеек.

Если требуется помощь в поиске ячейки, которая выходит за границы этого предела, запустите записную книжку на универсальном кластере и используйте этот метод автосохранения записной книжки.

Имя поля Тип Описание
notebook_path STRING Абсолютный путь ноутбука, который будет запущен в рабочей области Azure Databricks. Этот путь должен начинаться с косой черты. Это обязательное поле.
revision_timestamp LONG Метка времени ревизии блокнота.
base_parameters Карта ParamPair Базовые параметры, которые будут использоваться для каждого процесса выполнения этого задания. Если выполнение инициируется вызовом метода run-now с указанными параметрами, карты этих двух параметров будут объединены. Если один и тот же ключ указан в base_parameters и в run-now, будет использоваться значение из run-now.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие информацию о выполнении задания.
Если записная книжка принимает параметр, который не был указан в base_parameters задания или в переопределенных параметрах run-now, будет использоваться значение по умолчанию из записной книжки.
Получите эти параметры в записной книжке с помощью метода dbutils.widgets.get.

ParamPair

Параметры на основе имени для заданий, выполняющих задачи записной книжки.

Внимание

Поля в этой структуре данных принимают только латинские символы (кодировка ASCII). При использовании не-ASCII символов будет возвращена ошибка. Примерами недопустимых не-ASCII символов , являются китайские и японские иероглифы, а также эмодзи.

Тип Описание
STRING Имя параметра. Передайте значение в метод dbutils.widgets.get для получения значения.
STRING Значение параметра.

PipelineTask

Имя поля Тип Описание
pipeline_id STRING Полное имя задачи конвейера DLT, которую нужно выполнить.

PythonPyPi библиотека

Имя поля Тип Описание
package STRING Имя устанавливаемого пакета PyPi. Также поддерживается необязательная точная спецификация версии. Примерами являются события simplejson и simplejson==3.8.0. Это обязательное поле.
repo STRING Репозиторий, в котором находится пакет. Если он не указан, используется индекс PIP по умолчанию.

RCranLibrary

Имя поля Тип Описание
package STRING Имя устанавливаемого пакета CRAN. Это обязательное поле.
repo STRING Репозиторий, в котором находится пакет. Если не указано, используется репозиторий CRAN по умолчанию.

Запуск

Все сведения о процессе выполнения, кроме его выходных данных. Выходные данные можно получить отдельно с помощью метода getRunOutput.

Имя поля Тип Описание
job_id INT64 Канонический идентификатор задания, содержащего этот запуск.
run_id INT64 Канонический идентификатор запуска. Этот идентификатор уникален для всех процессов выполнения всех заданий.
creator_user_name STRING Имя пользователя-создателя. Это поле не будет включено в ответ, если пользователь был уже удален.
number_in_job INT64 Порядковый номер этого запуска среди всех запусков задания. Это значение начинается с 1.
original_attempt_run_id INT64 Если этот процесс выполнения является повторением предыдущей попытки запуска процесса, это поле содержит run_id исходного процесса, в противном случае он совпадает с run_id.
state RunState Результат и состояния жизненного цикла процесса выполнения.
schedule CronSchedule Расписание cron, которое запустило этот запуск, если его инициировал периодический планировщик.
task JobTask Задача, выполняемая процессом запуска, если таковая есть.
cluster_spec ClusterSpec Снимок состояния спецификации кластера задания на момент создания этого запуска.
cluster_instance ClusterInstance Используемый для этого запуска кластер. Если процесс выполнения указан для использования нового кластера, это поле будет задано после того, как служба заданий запросит кластер для выполнения.
overriding_parameters RunParameters Параметры, использованные для этого запуска.
start_time INT64 Время, когда был запущен этот процесс, выражено в миллисекундах эпохи (миллисекунды с 1 января 1970 года по времени UTC). Это время может не совпадать со временем начала выполнения задачи, например, если задание планируется запускать в новом кластере, это время выполнения вызова на создание кластера.
setup_duration INT64 Время, затраченное на настройку кластера, в миллисекундах. Для процессов выполнения, выполняемых в новых кластерах это время создания кластера, для процессов выполнения в существующих кластерах это время должно быть очень коротким.
execution_duration INT64 Время в миллисекундах, затраченное на выполнение команд в JAR-файле или записной книжке, пока они не были завершены, завершились сбоем, истекло время ожидания, было отменено или произошла непредвиденная ошибка.
cleanup_duration INT64 Время в миллисекундах, затраченное на завершение работы кластера и очистку связанных артефактов. Общая длительность процесса выполнения — это сумма значений для параметров setup_duration, execution_duration и cleanup_duration.
end_time INT64 Время завершения этого выполнения в миллисекундах эпохи (миллисекунды, прошедшие с 01.01.1970 UTC). Это поле будет иметь значение 0, если задание все еще выполняется.
trigger TriggerType Тип триггера, запустившего этот запуск.
run_name STRING Необязательное имя для запуска. Значение по умолчанию — Untitled. Максимально допустимая длина — 4096 байт в кодировке UTF-8.
run_page_url STRING URL-адрес страницы сведений о процессе выполнения.
run_type STRING Тип процесса выполнения.
  • JOB_RUN — обычный запуск задания. Процесс выполнения, созданный нажатием кнопки Запустить сейчас.
  • WORKFLOW_RUN — запуск рабочего процесса. Процесс выполнения, созданный с помощью метода dbutils.notebook.run.
  • SUBMIT_RUN — отправить запуск. Процесс выполнения, созданный нажатием кнопки Запустить сейчас.
attempt_number INT32 Порядковый номер попытки запуска процесса выполнения запущенного задания. Начальная попытка запуска процесса выполнения имеет attempt_number = 0. Если первая попытка запуска завершается неудачно, и для задания установлена политика повторного выполнения (max_retries> 0), последующие запуски создаются с идентификатором исходной попытки original_attempt_run_id и увеличивающимся значение attempt_number. Повторные попытки запусков делаются только до тех пор, пока они не завершатся удачно, а максимум attempt_number равен значению max_retries для задания.

RunJobTask

Имя поля Тип Описание
job_id INT32 Уникальный идентификатор выполняемого задания. Это обязательное поле.

RunLifeCycleState

Состояние жизненного цикла запуска. Допустимые переходы состояний:

  • QUEUED ->PENDING
  • PENDING- - ->RUNNING>TERMINATING>TERMINATED
  • PENDING ->SKIPPED
  • PENDING ->INTERNAL_ERROR
  • RUNNING ->INTERNAL_ERROR
  • TERMINATING ->INTERNAL_ERROR
государство Описание
QUEUED Запуск был активирован, но находится в ожидании, так как он достиг одного из следующих ограничений:
  • Максимальное число параллельных активных процессов в рабочей области.
  • Максимальная параллельная Run Job задача выполняется в рабочей области.
  • Максимальное число параллельных запусков задания.

Задание или процесс должны иметь включенную очередь, прежде чем они могут достичь этого состояния.
PENDING Запуск был инициирован. Если уже достигнуто настроенное максимальное число одновременных запусков задания, выполнение немедленно перейдет в SKIPPED состояние без подготовки ресурсов. В противном случае подготовка кластера и выполнение находятся в процессе.
RUNNING Задача этого запуска выполняется.
TERMINATING Задача этого процесса выполнения завершена, выполняется очистка кластера и контекста выполнения.
TERMINATED Задача этого запуска завершена, а кластер и контекст выполнения были очищены. Это состояние — терминальное.
SKIPPED Этот запуск был отменён, так как предыдущий запуск этой же задачи уже выполнялся. Это состояние — терминальное.
INTERNAL_ERROR Исключительная ситуация, указывающая на сбой в работе службы заданий, например, сбой сети в течение продолжительного времени. Если выполнение на новом кластере завершается в состоянии INTERNAL_ERROR, служба заданий прекращает работу кластера как можно скорее. Это состояние — терминальное.

RunParameters

Параметры для этого запуска. В запросе должен быть указан только один из параметров: jar_params, python_params или notebook_params, в зависимости от типа задачи задания. Задачи Spark JAR или Python используют список позиционных параметров, а задачи в ноутбуке принимают карту «ключ-значение».

Имя поля Тип Описание
jar_params Массив объектов STRING. Список параметров для заданий с использованием Spark JAR, например "jar_params": ["john doe", "35"]. Параметры будут использоваться для вызова функции main указанного класса в задаче JAR-файла Spark. Если значение не задано run-now, по умолчанию будет использоваться пустой список. jar_params запрещено указывать вместе с notebook_params. Представление JSON этого поля (т. е. {"jar_params":["john doe","35"]}) не может превышать 10 000 байт.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие сведения о выполнении задания.
notebook_params Карта ParamPair Сопоставление «ключ-значение» для заданий с использованием записной книжки, например
"notebook_params": {"name": "john doe", "age": "35"}. Карта передается в записную книжку и доступна через функцию dbutils.widgets.get.
Если значение не указано run-now, то в запущенном процессе выполнения используются базовые параметры задания.
Параметр notebook_params запрещено указывать вместе с параметром jar_params.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие сведения о выполнении задания.
Представление JSON этого поля (т. е.
{"notebook_params":{"name":"john doe","age":"35"}}) не может превышать 10 000 байт.
python_params Массив объектов STRING. Список параметров для заданий с задачами Python, например "python_params": ["john doe", "35"]. Параметры будут переданы в файл Python в виде параметров командной строки. Если значение задано в run-now, оно перезапишет параметры, указанные в настройках задания. Представление JSON этого поля (т. е. {"python_params":["john doe","35"]}) не может превышать 10 000 байт.
Используйте Что такое ссылка на динамическое значение?, чтобы задать параметры, содержащие информацию о запусках заданий.
Эти параметры принимают только латинские символы (набор символов ASCII). При использовании не-ASCII символов будет возвращена ошибка. Примерами недопустимых не-ASCII символов , являются китайские и японские иероглифы, а также эмодзи.
spark_submit_params Массив объектов STRING. Список параметров для заданий с задачей spark-submit, например
"spark_submit_params": ["--class", "org.apache.spark.examples.SparkPi"]. Параметры передаются в сценарий spark-submit в виде параметров командной строки. Если значение задано в run-now, оно перезапишет параметры, указанные в настройках задания. Представление JSON этого поля (т. е. {"python_params":["john doe","35"]}) не может превышать 10 000 байт.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие информацию о выполнении задачи.
Эти параметры принимают только латинские символы (набор символов ASCII). При использовании не-ASCII символов будет возвращена ошибка. Примерами недопустимых не-ASCII символов , являются китайские и японские иероглифы, а также эмодзи.

СостояниеРезультатаЗапуска

Состояние результата процесса выполнения.

  • Если life_cycle_state = TERMINATED: если процесс выполнения содержал задачу, результат будет гарантированно доступен, и это указывает на результат выполнения задачи.
  • Если life_cycle_state = PENDING, RUNNING или SKIPPED, состояние результата недоступно.
  • Если life_cycle_state = TERMINATING или lifecyclestate = INTERNAL_ERROR: состояние результата доступно, если выполнение имело задачу и успешно начало её.

После того, как состояние результата становится доступным, оно никогда не изменяется.

государство Описание
SUCCESS Задача успешно завершена.
FAILED Задача завершена с ошибкой.
TIMEDOUT Запуск был остановлен после достижения тайм-аута.
CANCELED Процесс выполнения был отменен по запросу пользователя.

RunState

Имя поля Тип Описание
life_cycle_state RunLifeCycleState Описание текущего расположения процесса выполнения в его жизненном цикле. Это поле всегда доступно в ответе.
result_state RunResultState Состояние результата процесса выполнения. Если он недоступен, ответ не будет включать это поле. Дополнительные сведения о доступности состояния result_state см. RunResultState.
user_cancelled_or_timedout BOOLEAN Указывает, был ли процесс выполнения отменен вручную пользователем или планировщиком, так как время выполнения истекло.
state_message STRING Описательное сообщение для текущего состояния. Это поле не структурировано, и его точный формат может измениться.

SparkConfPair

Конфигурационные пары "ключ-значение" для Spark.

Тип Описание
STRING Имя свойства конфигурации.
STRING Значение свойства конфигурации.

SparkEnvPair

Пары "ключ-значение" переменной среды Spark.

Внимание

При указании переменных среды в кластере выполнения задания, поля этой структуры данных принимают только символы латинского алфавита (набор символов ASCII). При использовании не-ASCII символов будет возвращена ошибка. Примерами недопустимых не-ASCII символов , являются китайские и японские иероглифы, а также эмодзи.

Тип Описание
STRING Имя переменной среды.
STRING Значение переменной среды.

SparkJarTask

Имя поля Тип Описание
jar_uri STRING Не рекомендуется с апреля 2016 г. Вместо этого предоставьте jar с помощью поля libraries. Пример см. в пункте Создать.
main_class_name STRING Полное имя класса, который содержит главный метод, который будет выполнен. Этот класс должен содержаться в файле JAR, предоставляемом в виде библиотеки.
Код должен использовать SparkContext.getOrCreate для получения контекста Spark; в противном случае выполнение задачи завершится ошибкой.
parameters Массив данных STRING. Параметры, передаваемые в метод main.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие сведения о ходе заданий.

SparkPythonTask

Имя поля Тип Описание
python_file STRING URI файла Python, подлежащего выполнению. Поддерживаются пути DBFS. Это обязательное поле.
parameters Массив объектов STRING. Параметры командной строки, передаваемые в файл Python.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие сведения о выполнении задания.

Задача SparkSubmit

Внимание

  • Вы можете вызывать задачи spark-submit только в новых кластерах.
  • В спецификации new_cluster, libraries и spark_conf не поддерживаются. Используйте --jars и --py-files для добавления библиотек Java и Python, а также --conf для настройки конфигурации Spark.
  • master, deploy-mode и executor-cores автоматически настраиваются в Azure Databricks; их невозможно указать в параметрах.
  • По умолчанию для задания spark-submit используется вся доступная память (кроме зарезервированной памяти для служб Azure Databricks). Можно задать для --driver-memory и --executor-memory меньшее значение, чтобы оставить некоторое место для использования вне кучи.
  • Аргументы --jars, --py-files, --files поддерживают пути DBFS.

Например, если допустить, что JAR-файл передается в DBFS, можно запустить SparkPi, задав следующие параметры.

{
  "parameters": ["--class", "org.apache.spark.examples.SparkPi", "dbfs:/path/to/examples.jar", "10"]
}
Имя поля Тип Описание
parameters Массив объектов STRING. Параметры командной строки, передаваемые в команду spark-submit.
Используйте ссылку на динамическое значение, чтобы задать параметры, содержащие сведения о выполнении задания.

Тип Триггера

Это типы триггеров, которые могут запускать запуск.

Тип Описание
PERIODIC Расписания, которые периодически инициируют процессы выполнения, например планировщик cron.
ONE_TIME Триггеры инициируют однократный запуск процесса выполнения. Это происходит тогда, когда выполнен однократный запуск по запросу через пользовательский интерфейс или API.
RETRY Указывает на процесс выполнения, который запускается в качестве повторной попытки ранее неудавшегося процесса выполнения. Это происходит, при запросе на повторный запуск задания в случае ошибки.

Просмотреть объект

Экспортированное содержимое имеет формат HTML. Например, если представлением для экспорта является панели мониторинга, то для каждой такой панели возвращается одна строка HTML.

Имя поля Тип Описание
content STRING Содержимое представления.
name STRING Имя элемента представления. Для представления кода это имя записной книжки. В случае представления панели мониторинга, имя панели мониторинга.
type ViewType Тип элемента представления.

ViewType

Тип Описание
NOTEBOOK Элемент отображения записной книжки.
DASHBOARD Элемент панели мониторинга.

ПредставленияДляЭкспорта

Представление для экспорта: либо код, все панели мониторинга, либо все.

Тип Описание
CODE Вид кода записной книжки.
DASHBOARDS Все представления панели управления ноутбука.
ALL Все виды ноутбука.

Вебхук

Имя поля Тип Описание
id STRING Идентификатор, ссылающийся на назначение системного уведомления. Это обязательное поле.

Уведомления вебхука

Имя поля Тип Описание
on_start Массив вебхуков Webhook Необязательный список системных адресатов, которым будут отправляться уведомления при запуске. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются. Для свойства on_start можно указать не более 3 мест назначения.
on_success Массив Webhook Необязательный список адресов системы, чтобы получать уведомления при успешном завершении работы. Запуск считается успешно завершенным, если он заканчивается на TERMINATEDlife_cycle_state и SUCCESSFULresult_state. Если значение не указано при создании, сбросе или обновлении задания, список пуст, и уведомления не отправляются. Для свойства on_success можно указать не более 3 мест назначения.
on_failure Массив Webhook Необязательный список системных пунктов назначения для получения уведомлений в случае неудачного завершения выполнения. Процесс выполнения считается завершенным неудачно, если он заканчивается со значением INTERNAL_ERROR
life_cycle_state или SKIPPED, FAILED, или TIMED_OUTresult_state. Если это не указано при создании задания, сбросе или обновлении, список пуст, и уведомления не отправляются. Для свойства on_failure можно указать не более 3 мест назначения.
on_duration_warning_threshold_exceeded Массив вебхуков Необязательный список системных пунктов назначения, которые будут уведомлены, когда продолжительность выполнения превышает пороговое значение, указанное для метрики RUN_DURATION_SECONDS в поле health. Для свойства on_duration_warning_threshold_exceeded можно указать не более 3 мест назначения.

Информация о хранилище рабочего пространства

Сведения о хранилище рабочей области.

Имя поля Тип Описание
destination STRING Место назначения файла. Пример: /Users/someone@domain.com/init_script.sh