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_v3 standard_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>