Compartilhar via


Esquema YAML do componente de Spark da CLI (v2)

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

Observação

A sintaxe YAML detalhada neste documento baseia-se no esquema JSON da última versão da extensão de ML da CLI v2. Essa sintaxe só tem a garantia de funcionar com a última versão da extensão de ML da CLI v2. Encontre os esquemas para as versões mais antigas da extensão em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Type Descrição Valores permitidos Valor padrão
$schema string O esquema YAML. Se você usar a extensão do Azure Machine Learning para VS Code para criar o arquivo YAML, a inclusão de $schema no início do arquivo permitirá invocar conclusões de esquema e recursos.
type const Obrigatórios. O tipo de componente. spark
name string Obrigatórios. Nome do componente. Deve começar com letra minúscula. Os caracteres permitidos são letras minúsculas, números e sublinhado (_). O comprimento máximo é de 255 caracteres.
version string A versão do componente. Se isso for omitido, o Azure Machine Learning vai gerar uma versão automaticamente.
display_name string Nome de exibição do componente na interface do usuário no estúdio. Dentro do workspace ele pode ser não exclusivo.
description string Descrição do componente.
tags objeto Dicionário de marcas para o componente.
code string Obrigatórios. O local da pasta que contém o código-fonte e os scripts para esse componente.
entry objeto Obrigatórios. O ponto de entrada do componente. Poderia definir um file.
entry.file string O local da pasta que contém o código-fonte e os scripts para esse componente.
py_files objeto Uma lista de arquivos .zip, .egg ou .py que serão colocados no PYTHONPATH, para uma execução bem-sucedida do trabalho.
jars objeto Uma lista de arquivos .jar a serem incluídos no driver do Spark e no executor CLASSPATH para uma execução bem-sucedida do trabalho.
files objeto Uma lista de arquivos que devem ser copiados para o diretório de trabalho de cada executor, para obter a execução bem-sucedida do trabalho com este componente.
archives objeto Uma lista de arquivos que devem ser extraídos para o diretório de trabalho de cada executor, para obter a execução bem-sucedida do trabalho.
conf objeto Driver Spark e propriedades do executor. Confira Atributos da conf chave
environment cadeia de caracteres ou objeto O ambiente a ser usado para o componente. Esse valor pode ser uma referência para um ambiente com versão existente no espaço de trabalho ou uma especificação de ambiente embutido.

Para fazer referência a um ambiente existente, use a sintaxe azureml:<environment_name>:<environment_version> ou azureml:<environment_name>@latest (para fazer referência à versão mais recente de um ambiente).

Siga o esquema do ambiente para definir um ambiente embutido. Exclua as propriedades name e version porque os ambientes embutidos não dão suporte a elas.
args string Os argumentos de linha de comando que devem ser passados para o script Python do ponto de entrada do componente. Esses argumentos podem conter os caminhos dos dados de entrada, o local para gravar a saída, por exemplo "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
inputs objeto Dicionário de entradas de componente. A chave é um nome para a entrada dentro do contexto do componente e o valor é o valor de entrada.

As entradas podem ser referenciadas em args usando a expressão ${{ inputs.<input_name> }}.
inputs.<input_name> número, número inteiro, booliano, cadeia de caracteres ou objeto Um dos valores literais (de número de tipo, inteiro, booliano ou cadeia de caracteres) ou um objeto que contém uma especificação de dados de entrada de componente.
outputs objeto Dicionário de configurações de saída do componente. A chave é um nome para a saída dentro do contexto do componente e o valor é a configuração de saída.

As saídas podem ser referenciadas em args usando a expressão ${{ outputs.<output_name> }}.
outputs.<output_name> objeto A saída do componente Spark. A saída de um componente do Spark pode ser gravada em um arquivo ou um local da pasta, fornecendo um objeto que contém a especificação de saída do trabalho.

Atributos da chave conf

Chave Type Descrição Valor padrão
spark.driver.cores inteiro O número de núcleos do driver do Spark.
spark.driver.memory string Memória alocada para o driver do Spark, em gigabytes (GB), por exemplo, 2g.
spark.executor.cores inteiro O número de núcleos para o executor do Spark.
spark.executor.memory string Memória alocada para o executor do Spark, em gigabytes (GB), por exemplo, 2g.
spark.dynamicAllocation.enabled booleano Se os executores devem ou não ser alocados dinamicamente, como um valor True ou False. Se essa propriedade for definida True, defina spark.dynamicAllocation.minExecutors e spark.dynamicAllocation.maxExecutors. Se essa propriedade for definida para False, defina spark.executor.instances. False
spark.dynamicAllocation.minExecutors inteiro O número mínimo de instâncias de executores do Spark, para uma alocação dinâmica.
spark.dynamicAllocation.maxExecutors inteiro O número máximo de instâncias de executores do Spark, para uma alocação dinâmica.
spark.executor.instances inteiro O número de instâncias do executor do Spark.

Entradas de componente

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de entrada do componente. Especifique uri_file para dados de entrada que apontem para uma única fonte de arquivo ou uri_folder para dados de entrada que apontem para uma fonte de pasta. Saiba mais sobre acesso aos dados. uri_file, uri_folder
mode string Modo como os dados devem ser entregues ao destino de computação. O modo passa direct na URL do local de armazenamento como a entrada do componente. Você tem total responsabilidade para lidar com as credenciais do acesso de armazenamento. direct

Saídas de componente

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de saída do componente. uri_file, uri_folder
mode string O modo de entrega dos arquivos de saída para o recurso de armazenamento de destino. direct

Comentários

Os comandos az ml component podem ser usados para gerenciar os componentes do Spark no Azure Machine Learning.

Exemplos

Os exemplos estão disponíveis no repositório de exemplos do GitHub. Vários são mostrados aqui.

YAML: Um componente Spark de exemplo

# 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: Um trabalho de pipeline de exemplo com um componente do 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>

Próximas etapas