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


Выполнение параметризованной задачи задания Azure Databricks в цикле

В этой статье рассматривается использование For each задачи с заданиями Azure Databricks, включая сведения о добавлении и настройке задачи в пользовательском интерфейсе заданий. For each Используйте задачу для выполнения задачи в цикле, передавая другой набор параметров каждой итерации задачи.

For each Добавление задачи в задание требует определения двух задач: For each задачи и вложенной задачи. Вложенная задача — это задача, выполняемая для каждой For each итерации задачи и является одним из стандартных типов задач Заданий Azure Databricks. Нельзя добавить другую For each задачу в качестве вложенной задачи.

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

Какие типы параметров можно использовать с задачей For each ?

Чтобы передать параметры из For each задачи, можно:

Чтобы узнать, как использовать эти различные типы параметров при добавлении или изменении For each задачи, см. следующий раздел " Добавление каждой задачи в задание".

For each Добавление задачи в задание

Вы можете добавить For each задачу при создании задания или изменении задачи в существующем задании. Чтобы настроить задачу, выполните приведенные For each действия.

  1. В раскрывающемся меню "Тип" выберите "Для каждого".

  2. В поле Имя задачи введите название задачи.

  3. В текстовом поле "Входные данные" определите значения задачи для 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}}.

  4. Чтобы при необходимости задать количество итераций, которые могут выполняться параллельно, введите значение параллелизма для задачи. Значение по умолчанию равно 1.

  5. Чтобы при необходимости получать уведомления о запуске задачи, успешном выполнении или сбое, нажмите кнопку + Добавить. См. статью "Добавление уведомлений по электронной почте и системе" для событий задания.

  6. Чтобы завершить настройку задачи и добавить вложенную задачу для выполнения для каждой For each итерации, нажмите кнопку "Добавить задачу для цикла".

  7. Выберите тип задачи и параметры конфигурации для вложенной задачи. Вложенные задачи являются стандартными типами задач и имеют одинаковые параметры конфигурации. См. статью "Настройка и изменение задач Databricks".

  8. Чтобы ссылаться на параметры, передаваемые For each из задачи, нажмите кнопку "Параметры". {{input}} Используйте ссылку, чтобы задать значение массива для каждого итерации или {{input.<key>}} ссылаться на поля отдельных объектов при итерации по списку объектов.

    Добавление вложенной задачи в каждую задачу

  9. Нажмите Создать задачу.

Переключение между задачей For each и вложенной задачей

Задача For each отображается в пользовательском интерфейсе заданий в качестве узла с вложенным узлом задачи внутри For each узла. Чтобы переключиться между задачей For each и вложенной задачей, щелкните соответствующие узлы.

Переключение представления DAG пользовательского интерфейса заданий на

Переключение представления DAG пользовательского интерфейса заданий на вложенную задачу

Ссылка на For each задачу в подчиненных задачах

Задача For each — это задача верхнего уровня, а подчиненные задачи могут указать ее как зависимость. Подчиненные задачи не могут зависеть от вложенной задачи или ссылаться на нее.

Выполнение и мониторинг задания с For each помощью задачи

Выполнение задания с задачей For each идентично выполнению любого другого задания.

Просмотр и управление выполнением заданий также идентично любому другому заданию, кроме журнала выполнения задач для For each задачи, которая представлена в виде таблицы итераций задач. Просмотр журнала выполнения задач для каждой задачи.