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


Схема YAML задания Spark (версия 2)

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

Примечание.

Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.

Синтаксис YAML

Ключ Тип Описание Допустимые значения Default value
$schema строка Схема YAML. При создании файла YAML с помощью расширения VS Code Машинного обучения Azure вы можете добавить $schema в верхней части файла, чтобы вызывать завершение схемы и ресурсов.
type const Обязательный. Тип задания. spark
name строка Имя задания. Должно быть уникальным для всех заданий в рабочей области. Если опущено, Машинное обучение Azure автоматически создает GUID для имени.
display_name строка Отображаемое имя задания в пользовательском интерфейсе студии. Может быть неуникален в рабочей области. Если опущено, Машинное обучение Azure автоматически создает идентификатор прилагательного имени, доступный для чтения.
experiment_name строка Имя эксперимента, по которому будет организовано задание. Запись выполнения каждого задания организована в соответствии с соответствующим экспериментом на вкладке "Эксперименты" студии. Если опущено, Машинное обучение Azure по умолчанию используется имя рабочего каталога, в котором было создано задание.
description строка Описание задания.
tags объект Словарь тегов для задания.
code строка Локальный путь к каталогу исходного кода, который будет отправлен и использован для задания.
code строка Обязательный. Расположение папки, содержащей исходный код и скрипты для этого задания.
entry объект Обязательный. Точка входа для задания. Он может определить file.
entry.file строка Расположение папки, содержащей исходный код и скрипты для этого задания.
py_files объект Список .zipфайлов .egg, .py которые нужно поместить в PYTHONPATHприложение, для успешного выполнения задания.
jars объект Список .jar файлов для включения в драйвер Spark и исполнителя CLASSPATHдля успешного выполнения задания.
files объект Список файлов, которые следует скопировать в рабочий каталог каждого исполнителя, для успешного выполнения задания.
archives объект Список архивов, которые следует извлечь в рабочий каталог каждого исполнителя, для успешного выполнения задания.
conf объект Свойства драйвера Spark и исполнителя. См . атрибуты conf ключа
environment Строка или объект Среда, используемая для задания. Среда может быть ссылкой на существующую версию среды в рабочей области или встроенную спецификацию среды.

Чтобы ссылаться на существующую среду, используйте azureml:<environment_name>:<environment_version> синтаксис или azureml:<environment_name>@latest (чтобы ссылаться на последнюю версию среды).

Чтобы определить встроенную среду, следуйте схеме среды. name Исключите и version свойства, так как встроенные среды не поддерживают их.
args строка Аргументы командной строки, которые должны передаваться в скрипт точки входа задания Python. Эти аргументы могут содержать пути входных данных, расположение для записи выходных данных, например "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
resources объект Ресурсы, используемые Машинное обучение Azure бессерверными вычислениями Spark. Один из compute или resources должен быть определен.
resources.instance_type строка Тип вычислительного экземпляра, используемый для пула Spark. standard_e4s_v3, , standard_e8s_v3standard_e16s_v3standard_e32s_v3, . standard_e64s_v3
resources.runtime_version строка Версия среды выполнения Spark. 3.2, 3.3
compute строка Имя подключенного пула Synapse Spark для выполнения задания. Один из compute или resources должен быть определен.
inputs объект Словарь входных данных для задания. Ключ — это имя входных данных в контексте задания, а значение — это входное значение.

На входные данные можно ссылаться в args с помощью выражения ${{ inputs.<input_name> }}.
inputs.<input_name> число, целое число, логическое значение, строка или объект Одно из литеральных значений (с типом Number, Integer, Boolean или String) или объект, содержащий спецификацию входных данных для задания.
outputs объект Словарь конфигураций выходных данных для задания. Ключ — это имя выходных данных в контексте задания, а значение — выходная конфигурация.

На выходные данные можно ссылаться в args с помощью выражения ${{ outputs.<output_name> }}.
outputs.<output_name> объект Выходные данные задания Spark. Выходные данные для задания Spark можно записать в файл или папку, предоставив объект, содержащий спецификацию выходных данных задания.
identity объект Удостоверение используется для доступа к данным. Это может быть UserIdentityConfiguration, ManagedIdentityConfiguration или None. Для UserIdentityConfiguration удостоверение отправителя заданий используется для доступа к входным данным и записи результата в выходную папку. В противном случае соответствующее удостоверение основано на типе вычислений Spark.

Атрибуты ключа conf

Ключ Тип Описание Default value
spark.driver.cores integer Число ядер для драйвера Spark.
spark.driver.memory строка Выделенная память для драйвера Spark в гигабайтах (ГБ); например, 2g.
spark.executor.cores integer Количество ядер для исполнителя Spark.
spark.executor.memory строка Выделенная память для исполнителя Spark в гигабайтах (ГБ); например, 2g.
spark.dynamicAllocation.enabled boolean Следует ли динамически выделять исполнителей как True значение или False значение. Если это свойство задано True, определите spark.dynamicAllocation.minExecutors и spark.dynamicAllocation.maxExecutors. Если для этого свойства задано Falseзначение , определите spark.executor.instances. False
spark.dynamicAllocation.minExecutors integer Минимальное количество экземпляров исполнителей Spark для динамического выделения.
spark.dynamicAllocation.maxExecutors integer Максимальное количество экземпляров исполнителя Spark для динамического выделения.
spark.executor.instances integer Количество экземпляров исполнителя Spark.

Входные данные задания

Ключ Тип Описание Допустимые значения Default value
type строка Тип входных данных для задания. Укажите uri_file, чтобы использовать в качестве источника входные данные из одного файла, или uri_folder, чтобы использовать весь каталог с файлами. Дополнительные сведения о доступе к данным. uri_file, uri_folder
path строка Путь к данным, которые используются в качестве входных данных. Универсальный код ресурса (URI) входных данных, например azureml://abfss://, или wasbs:// может использоваться. Дополнительные сведения об использовании формата URI см. в разделе "Основной azureml:// синтаксис yaml".
mode строка Режим доставки данных в целевой объект вычислений. Режим direct передает URL-адрес расположения хранилища в качестве входных данных задания. Вы несете полную ответственность за обработку учетных данных доступа к хранилищу. direct

Выходные данные задания

Ключ Тип Описание Допустимые значения Default value
type строка Тип выходных данных для задания. uri_file, uri_folder
path строка Универсальный код ресурса (URI) входных данных, например azureml://, abfss://или wasbs://.
mode строка Режим доставки выходных файлов в целевой ресурс хранилища. direct

Конфигурации удостоверений

UserIdentityConfiguration

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип удостоверения. user_identity

ManagedIdentityConfiguration

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип удостоверения. managed

Замечания

Команды az ml job можно использовать для управления заданиями Spark Машинное обучение Azure.

Примеры

Примеры см. в примерах репозитория GitHub. Далее показано несколько.

YAML: автономное задание Spark с помощью подключенного пула Synapse Spark и управляемого удостоверения

# attached-spark-standalone-managed-identity.yaml
$schema: https://azuremlschemas.azureedge.net/latest/sparkJob.schema.json
type: spark

code: ./src
entry:
  file: titanic.py

conf:
  spark.driver.cores: 1
  spark.driver.memory: 2g
  spark.executor.cores: 2
  spark.executor.memory: 2g
  spark.executor.instances: 2

inputs:
  titanic_data:
    type: uri_file
    path: azureml://datastores/workspaceblobstore/paths/data/titanic.csv
    mode: direct

outputs:
  wrangled_data:
    type: uri_folder
    path: azureml://datastores/workspaceblobstore/paths/data/wrangled/
    mode: direct

args: >-
  --titanic_data ${{inputs.titanic_data}}
  --wrangled_data ${{outputs.wrangled_data}}

identity:
  type: managed

compute: <ATTACHED_SPARK_POOL_NAME>

YAML: автономное задание Spark с использованием бессерверных вычислений Spark и удостоверения пользователя

Следующие шаги