Compartir a través de


Esquema YAML del componente Spark de la CLI (v2)

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

Nota:

La sintaxis de YAML que se detalla en este documento se basa en el esquema JSON de la versión más reciente de la extensión ML de la CLI v2. Se garantiza que esta sintaxis solo funciona con la versión más reciente de la extensión ML de la CLI v2. Dispone de los esquemas de las versiones de anteriores de la extensión en https://azuremlschemasprod.azureedge.net/.

Sintaxis de YAML

Clave Tipo Descripción Valores permitidos Valor predeterminado
$schema string Esquema de YAML. Si usa la extensión VS Code de Azure Machine Learning para crear el archivo YAML, la inclusión de $schema en la parte superior del archivo le permite invocar las finalizaciones del esquema y los recursos.
type const Necesario. Tipo de componente. spark
name string Necesario. Nombre del componente. Debe comenzar con una letra minúscula. Los caracteres permitidos son letras minúsculas, números y subrayado(_). La longitud máxima es de 255 caracteres.
version string Versión del componente. Si se omite, Azure Machine Learning genera automáticamente una versión.
display_name string Nombre para mostrar del componente en la interfaz de usuario de Studio. Puede no ser único dentro del área de trabajo.
description string Descripción del componente.
tags object Diccionario de etiquetas del componente.
code string Necesario. La ubicación de la carpeta que contiene código fuente y scripts de este componente.
entry object Necesario. El punto de entrada del componente. Podría definir un file.
entry.file string La ubicación de la carpeta que contiene código fuente y scripts de este componente.
py_files objeto Una lista de archivos .zip, .egg o .py que se van a colocar en PYTHONPATH para que el trabajo se ejecute correctamente con este componente.
jars object Una lista de archivos .jar que se van a incluir en el controlador de Spark y el ejecutor CLASSPATH para que el trabajo se ejecute correctamente con este componente.
files object Una lista de archivos que se deben copiar en el directorio de trabajo de cada ejecutor para que el trabajo se ejecute correctamente con este componente.
archives object Una lista de archivos que se deben extraer en el directorio de trabajo de cada ejecutor para que el trabajo se ejecute correctamente con este componente.
conf object Propiedades del ejecutor y el controlador de Spark. Consulte Atributos de la clave conf.
environment cadena u objeto Entorno que se usará para el componente. Este valor puede ser una referencia a un entorno con versiones existente en el área de trabajo o una especificación de entorno en línea.

Para hacer referencia a un entorno existente, use la sintaxis azureml:<environment_name>:<environment_version> o azureml:<environment_name>@latest (para hacer referencia a la versión más reciente de un entorno).

Para definir un entorno en línea, siga el Esquema de entorno. Excluya las propiedades name y version, ya que no son compatibles con los entornos insertados.
args string Argumentos de la línea de comandos que se deben pasar al script de Python del punto de entrada del componente. Estos argumentos pueden contener las rutas de los datos de entrada y la ubicación para escribir la salida, por ejemplo "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
inputs object Diccionario de entradas de componentes. La clave es un nombre de la entrada dentro del contexto del componente y el valor es el valor de entrada.

Se puede hacer referencia a las entradas en args mediante la expresión ${{ inputs.<input_name> }}.
inputs.<input_name> number, integer, boolean, string u object Uno de un valor literal (de tipo número, entero, booleano o cadena) o un objeto que contiene una especificación de datos de entrada de componente.
outputs object Diccionario de configuraciones de salida del componente. La clave es un nombre de la salida dentro del contexto del componente y el valor es la configuración de salida.

Se puede hacer referencia a las salidas en args mediante la expresión ${{ outputs.<output_name> }}.
outputs.<output_name> object Salida del componente de Spark. La salida de un componente de Spark se puede escribir en una ubicación de carpeta o archivo al proporcionar un objeto que contiene la especificación de salida del componente.

Atributos de la clave conf

Clave Tipo Descripción Valor predeterminado
spark.driver.cores integer Número de núcleos para el controlador de Spark.
spark.driver.memory string La memoria asignada para el controlador de Spark, en gigabytes (GB), por ejemplo 2g.
spark.executor.cores integer Número de núcleos para el ejecutor de Spark.
spark.executor.memory string Memoria asignada del ejecutor de Spark, en gigabytes (GB), por ejemplo 2g.
spark.dynamicAllocation.enabled boolean Independientemente de si los ejecutores deben asignarse de forma dinámica, como un valor True o False. Si esta propiedad está establecida como True, defina spark.dynamicAllocation.minExecutors y spark.dynamicAllocation.maxExecutors. Si esta propiedad está establecida en False, defina spark.executor.instances. False
spark.dynamicAllocation.minExecutors integer Número mínimo de instancias de ejecutores de Spark para la asignación dinámica.
spark.dynamicAllocation.maxExecutors integer Número máximo de instancias de ejecutores de Spark para la asignación dinámica.
spark.executor.instances integer El número de instancias del ejecutor de Spark.

Entradas de componente

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de entrada del componente. Especifique uri_file para los datos de entrada que apunte a un único origen de archivo o uri_folder para los datos de entrada que apunte a un origen de carpeta. Más información sobre el acceso a datos. uri_file, uri_folder
mode string Modo de cómo se deben entregar los datos al destino de proceso. El modo direct pasa la dirección URL de la ubicación de almacenamiento como entrada del componente. Tiene responsabilidad plena para controlar las credenciales de acceso al almacenamiento. direct

Salidas de componente

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de salida del componente. uri_file, uri_folder
mode string Modo de entrega de los archivos de salida al recurso de almacenamiento de destino. direct

Observaciones

Los comandos az ml component se pueden usar para administrar el componente de Spark de Azure Machine Learning.

Ejemplos

Hay ejemplos disponibles en el repositorio de GitHub de ejemplos. A continuación se muestran varios.

YAML: un componente de Spark de muestra

# 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: un trabajo de canalización de muestra con un componente de 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>

Pasos siguientes