Partilhar via


CLI (v2) Esquema YAML do trabalho 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 trabalho. spark
name string Nome do trabalho. Deve ser exclusivo em todos os trabalhos no espaço de trabalho. Se omitido, o Azure Machine Learning gera automaticamente um GUID para o nome.
display_name string Nome para exibição do trabalho na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho. Se omitido, o Azure Machine Learning gera automaticamente um identificador de substantivo adjetivo legível por humanos para o nome para exibição.
experiment_name string Nome do experimento para organizar o trabalho em. O registro de execução de cada trabalho é organizado sob o experimento correspondente na guia "Experimentos" do estúdio. Se omitido, o Azure Machine Learning assume 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ório. O local da pasta que contém o código-fonte e scripts para este trabalho.
entry objeto Obrigatório. O ponto de entrada para o trabalho. Poderia definir um file.
entry.file string O local da pasta que contém o código-fonte e scripts para este trabalho.
py_files objeto Uma lista de .zip, .eggou .py arquivos, a serem colocados no PYTHONPATH, para a execução bem-sucedida do trabalho.
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.
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.
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.
conf objeto As propriedades do driver e do executor do Spark. Consulte Atributos da conf chave
environment string ou objeto O ambiente a utilizar para o trabalho. O ambiente 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 trabalho. Esses argumentos podem conter os caminhos de 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 usados por uma computação do Spark sem servidor do Azure Machine Learning. Um dos compute ou resources deve ser definido.
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_v3, standard_e64s_v3.
resources.runtime_version string A versão de tempo de execução do Spark. 3.2, 3.3
compute string Nome do pool Synapse Spark anexado no qual executar o trabalho. Um dos compute ou resources deve ser definido.
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 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 (do tipo número, inteiro, booleano ou string) 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 no args uso da ${{ outputs.<output_name> }} expressão.
outputs.<output_name> objeto A saída do trabalho do Spark. A saída para um trabalho do Spark pode ser gravada em um arquivo ou em um local de pasta fornecendo um objeto que contém a especificação de saída do trabalho.
identity objeto A identidade é usada para acesso aos 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 Spark.

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 trabalho

Chave Tipo Description Valores permitidos Default value
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 o acesso a dados. uri_file, uri_folder
path string O caminho para os dados a serem usados como entrada. O URI dos dados de entrada, como azureml://, abfss://ou wasbs:// pode ser usado. Para obter mais informações sobre como usar o azureml:// formato URI, consulte Sintaxe yaml principal.
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 trabalho. Você tem total responsabilidade para lidar com credenciais de acesso ao armazenamento. direct

Resultados do trabalho

Chave Tipo Description Valores permitidos Default value
type string O tipo de saída do trabalho. uri_file, uri_folder
path string O URI dos dados de entrada, como azureml://, abfss://ou wasbs://.
mode string Modo de entrega do(s) arquivo(s) de saída para o recurso de armazenamento de destino. direct

Configurações de identidade

UserIdentityConfiguration

Chave Tipo Description Valores permitidos
type const Obrigatório. Tipo de identidade. user_identity

ManagedIdentityConfiguration

Chave Tipo Description Valores permitidos
type const Obrigatório. Tipo de identidade. managed

Observações

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

Exemplos

Veja exemplos em exemplos de repositório GitHub. Vários são mostrados a seguir.

YAML: Um trabalho autônomo do Spark usando o pool Synapse Spark anexado e 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 computação do Spark sem servidor e identidade do usuário

Próximos passos