Compartilhar via


Esquema YAML do trabalho 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 trabalho. spark
name string Nome do trabalho. Precisa ser exclusivo em todos os trabalhos no espaço de trabalho. Se não for especificado, o Azure Machine Learning irá gerar automaticamente um GUID para o nome.
display_name string Nome de exibição do trabalho na interface do usuário no Estúdio. Dentro do workspace ele pode ser não exclusivo. Se for omitido, o Azure Machine Learning irá gerar automaticamente um identificador com adjetivo-substantivo legível como o nome de exibição.
experiment_name string Nome do experimento sob o qual o trabalho é organizado. O registro de execução de cada trabalho é organizado no experimento correspondente da guia "Experimentos" do estúdio. Se não for especificado, o Azure Machine Learning terá como padrão o nome do diretório de trabalho onde o trabalho foi criado.
description string Descrição do trabalho.
tags objeto Dicionário de tags para o trabalho.
code string Caminho local para o diretório de código-fonte a ser carregado e usado para o trabalho.
code string Obrigatórios. O local da pasta que contém o código-fonte e os scripts desse trabalho.
entry objeto Obrigatórios. O ponto de entrada do trabalho. Poderia definir um file.
entry.file string O local da pasta que contém o código-fonte e os scripts desse trabalho.
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 uma execução bem-sucedida do trabalho.
archives objeto Uma lista de arquivos que devem ser extraídos para o diretório de trabalho de cada executor, para uma 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 trabalho. O ambiente pode ser uma referência para um ambiente com versão existente no workspace ou uma especificação do 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 trabalho. 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>}}"
resources objeto Os recursos a serem utilizados por uma computação do Spark sem servidor do Azure Machine Learning. Deve ser definido compute ou resources.
resources.instance_type string O tipo de instância de computação a ser usado para o pool do Spark. standard_e4s_v3, standard_e8s_v3, standard_e16s_v3, standard_e32s_v3standard_e64s_v3, .
resources.runtime_version string A versão de execução do Spark. 3.2, 3.3
compute string O nome do pool do Spark no Synapse anexado no qual executar o trabalho. Deve ser definido compute ou resources.
inputs objeto Dicionário de entradas para o trabalho. A chave é um nome para a entrada dentro do contexto do trabalho 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 trabalho.
outputs objeto Dicionário de configurações de saída do trabalho. A chave é um nome para a saída dentro do contexto do trabalho 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 de trabalho do Spark. A saída de um trabalho 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.
identity objeto A identidade é usada para acessar dados. Pode ser UserIdentityConfiguration, ManagedIdentityConfiguration ou None. Para UserIdentityConfiguration, a identidade do remetente do trabalho é usada para acessar os dados de entrada e gravar o resultado na pasta de saída. Caso contrário, a identidade apropriada é baseada no tipo de computação do Spark.

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 trabalho

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de entrada de trabalho. 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
path string O caminho para os dados a serem usados como entrada. A URI dos dados de entrada, como azureml://, abfss:// ou wasbs://, pode ser usada. Para saber mais sobre como usar o formato URI azureml://, confira Sintaxe principal do YAML.
mode string Modo como os dados devem ser entregues ao destino de computação. O modo direct passa na URL do local de armazenamento como a entrada do trabalho. Você tem total responsabilidade para lidar com as credenciais do acesso de armazenamento. direct

Saídas de trabalho

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de saída de trabalho. uri_file, uri_folder
path string A URI dos dados de entrada, como azureml://, abfss:// ou wasbs://.
mode string Modo de entrega dos arquivos de saída para o recurso de armazenamento de destino. direct

Configurações de identidade

UserIdentityConfiguration

Chave Type Descrição Valores permitidos
type const Obrigatórios. Tipo de identidade. user_identity

ManagedIdentityConfiguration

Chave Type Descrição Valores permitidos
type const Obrigatórios. Tipo de identidade. managed

Comentários

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

Exemplos

Veja exemplos no repositório de exemplos do GitHub. Vários são mostrados aqui.

YAML: um trabalho autônomo do Spark usando o pool do Spark no Synapse anexado e a identidade gerenciada

# 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: um trabalho autônomo do Spark usando a computação do Spark sem servidor e a identidade do usuário

Próximas etapas