Выполнение параметризованной задачи задания Azure Databricks в цикле
В этой статье рассматривается использование For each
задачи с заданиями Azure Databricks, включая сведения о добавлении и настройке задачи в пользовательском интерфейсе заданий. For each
Используйте задачу для выполнения задачи в цикле, передавая другой набор параметров каждой итерации задачи.
For each
Добавление задачи в задание требует определения двух задач: For each
задачи и вложенной задачи. Вложенная задача — это задача, выполняемая для каждой For each
итерации задачи и является одним из стандартных типов задач Заданий Azure Databricks. Нельзя добавить другую For each
задачу в качестве вложенной задачи.
Например, можно использовать For each
задачу для выполнения общего набора преобразований в нескольких таблицах, передавая имя таблицы из списка имен таблиц каждому итерации задачи.
Какие типы параметров можно использовать с задачей For each
?
Чтобы передать параметры из For each
задачи, можно:
- Определите коллекцию в формате JSON при создании или изменении задачи.
- Используйте значения задач, передаваемые из предыдущей задачи. Дополнительные сведения о значениях задач см. в статье "Использование значений задач для передачи информации между задачами".
- Используйте параметры задания. Дополнительные сведения о параметрах задания см. в разделе "Настройка параметров задания".
Чтобы узнать, как использовать эти различные типы параметров при добавлении или изменении For each
задачи, см. следующий раздел " Добавление каждой задачи в задание".
For each
Добавление задачи в задание
Вы можете добавить For each
задачу при создании задания или изменении задачи в существующем задании. Чтобы настроить задачу, выполните приведенные For each
действия.
В раскрывающемся меню "Тип" выберите "Для каждого".
В поле Имя задачи введите название задачи.
В текстовом поле "Входные данные" определите значения задачи для
For each
итерации. Может иметь одно из следующих значений.Форматированный массив значений JSON. Это может быть массив следующих типов данных:
- Пары "ключ-значение"
- Строки, числа или логические типы
- Произвольные сложные объекты JSON
Ссылки на значения задачи. Чтобы ссылаться на значения задач, передаваемые из предыдущей задачи, используйте
{{tasks.<task_name>.values.<task_value_name>}}
синтаксис, чтобы задать значение в текстовом поле "Входные данные". Например, если задача с именемgenerate_countries_list
, которая предшествуетFor each
задаче, задает следующее значение задачи:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
For each
Затем задача ссылается на значение задачи в текстовом поле "Входные данные", используя следующий синтаксис:{{tasks.generate_countries_list.values.countries}}
.Параметры задания. Чтобы ссылаться на параметр задания, используйте следующий синтаксис в текстовом поле "Входные данные".
{{job.parameters.<name>}}
Например,{{job.parameters.countries}}
.
Чтобы при необходимости задать количество итераций, которые могут выполняться параллельно, введите значение параллелизма для задачи. Значение по умолчанию равно 1.
Чтобы при необходимости получать уведомления о запуске задачи, успешном выполнении или сбое, нажмите кнопку + Добавить. См. статью "Добавление уведомлений по электронной почте и системе" для событий задания.
Чтобы завершить настройку задачи и добавить вложенную задачу для выполнения для каждой
For each
итерации, нажмите кнопку "Добавить задачу для цикла".Выберите тип задачи и параметры конфигурации для вложенной задачи. Вложенные задачи являются стандартными типами задач и имеют одинаковые параметры конфигурации. См. статью "Настройка и изменение задач Databricks".
Чтобы ссылаться на параметры, передаваемые
For each
из задачи, нажмите кнопку "Параметры".{{input}}
Используйте ссылку, чтобы задать значение массива для каждого итерации или{{input.<key>}}
ссылаться на поля отдельных объектов при итерации по списку объектов.Нажмите Создать задачу.
Переключение между задачей For each
и вложенной задачей
Задача For each
отображается в пользовательском интерфейсе заданий в качестве узла с вложенным узлом задачи внутри For each
узла. Чтобы переключиться между задачей For each
и вложенной задачей, щелкните соответствующие узлы.
Ссылка на For each
задачу в подчиненных задачах
Задача For each
— это задача верхнего уровня, а подчиненные задачи могут указать ее как зависимость. Подчиненные задачи не могут зависеть от вложенной задачи или ссылаться на нее.
Выполнение и мониторинг задания с For each
помощью задачи
Выполнение задания с задачей For each
идентично выполнению любого другого задания.
Просмотр и управление выполнением заданий также идентично любому другому заданию, кроме журнала выполнения задач для For each
задачи, которая представлена в виде таблицы итераций задач. Просмотр журнала выполнения задач для каждой задачи.