Partilhar via


CLI (v2) Esquema YAML do componente Spark

APLICA-SE A: Azure CLI ml extension v2 (atual)

Nota

A sintaxe YAML detalhada neste documento é baseada no esquema JSON para a versão mais recente da extensão ML CLI v2. Esta sintaxe é garantida apenas para funcionar com a versão mais recente da extensão ML CLI v2. Você pode encontrar os esquemas para versões de extensão mais antigas em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Tipo Description Valores permitidos Default value
$schema string O esquema YAML. Se você usar a extensão VS Code do Aprendizado de Máquina do Azure para criar o arquivo YAML, inclusive $schema na parte superior do arquivo permitirá que você invoque o esquema e as completações de recursos.
type const Obrigatório. O tipo de componente. spark
name string Obrigatório. 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 Versão do componente. Se omitido, o Azure Machine Learning gera automaticamente uma versão.
display_name string Nome de exibição do componente na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho.
description string Descrição do componente.
tags objeto Dicionário de tags para o componente.
code string Obrigatório. O local da pasta que contém o código-fonte e scripts para o componente.
entry objeto Obrigatório. O ponto de entrada para o componente. Poderia definir um file.
entry.file string O local da pasta que contém o código-fonte e scripts para o componente.
py_files objeto Uma lista de .zip, .eggou .py arquivos, a serem colocados no PYTHONPATH, para a execução bem-sucedida do trabalho com este componente.
jars objeto Uma lista de .jar arquivos a serem incluídos no driver Spark e no executor CLASSPATH, para a execução bem-sucedida do trabalho com esse componente.
files objeto Uma lista de arquivos que devem ser copiados para o diretório de trabalho de cada executor, para 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 a execução bem-sucedida do trabalho com este componente.
conf objeto As propriedades do driver e do executor do Spark. Consulte Atributos da conf chave
environment string ou objeto O ambiente a ser usado para o componente. Esse valor pode ser uma referência a um ambiente versionado existente no espaço de trabalho ou uma especificação de ambiente embutido.

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

Para definir um ambiente embutido, siga o esquema Ambiente. Exclua as propriedades e version porque os name ambientes em linha não oferecem 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 e 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 componentes. A chave é um nome para a entrada dentro do contexto do componente e o valor é o valor de entrada.

As entradas podem ser referenciadas args no uso da ${{ inputs.<input_name> }} expressão.
inputs.<input_name> número, inteiro, booleano, cadeia de caracteres ou objeto Um de um valor literal (de número de tipo, inteiro, booleano ou string) 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 no args uso da ${{ outputs.<output_name> }} expressão.
outputs.<output_name> objeto A saída do componente Spark. A saída para um componente Spark pode ser gravada em um arquivo ou em um local de pasta fornecendo um objeto contendo a especificação de saída do componente.

Atributos da conf chave

Chave Tipo Description Default value
spark.driver.cores integer O número de núcleos para o driver Spark.
spark.driver.memory string Memória alocada para o driver Spark, em gigabytes (GB), por exemplo, 2g.
spark.executor.cores integer O número de núcleos para o executor do Spark.
spark.executor.memory string Memória alocada para o executor Spark, em gigabytes (GB), por exemplo 2g.
spark.dynamicAllocation.enabled boolean Se os executores devem ou não ser alocados dinamicamente como um True ou False valor. Se esta propriedade estiver definida True, defina spark.dynamicAllocation.minExecutors e spark.dynamicAllocation.maxExecutors. Se esta propriedade estiver definida como False, defina spark.executor.instances. False
spark.dynamicAllocation.minExecutors integer O número mínimo de instâncias de executores do Spark, para alocação dinâmica.
spark.dynamicAllocation.maxExecutors integer O número máximo de instâncias de executores do Spark, para alocação dinâmica.
spark.executor.instances integer O número de instâncias do executor do Spark.

Entradas de componentes

Chave Tipo Description Valores permitidos Default value
type string O tipo de entrada de 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 o acesso a dados. uri_file, uri_folder
mode string Modo de como os dados devem ser entregues ao destino de computação. O direct modo passa a URL do local de armazenamento como a entrada do componente. Você tem total responsabilidade para lidar com credenciais de acesso ao armazenamento. direct

Saídas de componentes

Chave Tipo Description Valores permitidos Default value
type string O tipo de saída do componente. uri_file, uri_folder
mode string O modo de entrega do(s) arquivo(s) de saída para o recurso de armazenamento de destino. direct

Observações

Os az ml component comandos podem ser usados para gerenciar o componente Azure Machine Learning Spark.

Exemplos

Exemplos estão disponíveis no repositório GitHub de exemplos. Vários são mostrados a seguir.

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 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óximos passos