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


Схема 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 строка Обязательный. Имя компонента. Должно начинаться с буквы нижнего регистра. Допустимые символы — строчные буквы, цифры и символы подчеркивания(_). Максимальная длина составляет 255 символов.
version строка Версия компонента. Если опущено, Машинное обучение Azure автоматически создает версию.
display_name строка Отображаемое имя компонента в пользовательском интерфейсе Studio. Может быть неуникален в рабочей области.
description строка Описание компонента.
tags объект Словарь тегов для компонента.
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>}}"
inputs объект Словарь входных данных компонента. Ключ — это имя входных данных в контексте компонента, а значение — входное значение.

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

На выходные данные можно ссылаться в args с помощью выражения ${{ outputs.<output_name> }}.
outputs.<output_name> объект Выходные данные компонента Spark. Выходные данные для компонента 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
mode строка Режим доставки данных в целевой объект вычислений. Режим direct передает URL-адрес расположения хранилища в качестве входных данных компонента. Вы несете полную ответственность за обработку учетных данных доступа к хранилищу. direct

Выходные данные компонентов

Ключ Тип Описание Допустимые значения Default value
type строка Тип выходных данных компонента. uri_file, uri_folder
mode строка Режим доставки выходных файлов в целевой ресурс хранилища. direct

Замечания

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

Примеры

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

YAML: пример компонента Spark

# spark-job-component.yaml
$schema: https://azuremlschemas.azureedge.net/latest/sparkComponent.schema.json
name: titanic_spark_component
type: spark
version: 1
display_name: Titanic-Spark-Component
description: Spark component for Titanic data

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

inputs:
  titanic_data:
    type: uri_file
    mode: direct

outputs:
  wrangled_data:
    type: uri_folder
    mode: direct

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

conf:
  spark.driver.cores: 1
  spark.driver.memory: 2g
  spark.executor.cores: 2
  spark.executor.memory: 2g
  spark.dynamicAllocation.enabled: True
  spark.dynamicAllocation.minExecutors: 1
  spark.dynamicAllocation.maxExecutors: 4

YAML: пример задания конвейера с компонентом Spark

# attached-spark-pipeline-user-identity.yaml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: Titanic-Spark-CLI-Pipeline-2
description: Spark component for Titanic data in Pipeline

jobs:
  spark_job:
    type: spark
    component: ./spark-job-component.yml
    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

    identity:
      type: user_identity

    compute: <ATTACHED_SPARK_POOL_NAME>

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