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>