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>