Comparteix a través de


Esquema YAML del trabajo de 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 trabajo. spark
name string Nombre del trabajo. Debe ser único en todos los trabajos del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un GUID para el nombre.
display_name string Nombre para mostrar del trabajo en la interfaz de usuario de Studio. Puede no ser único dentro del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un identificador adjetivo-sustantivo legible para el nombre para mostrar.
experiment_name string Nombre del experimento en el que se va a organizar el trabajo. El registro de ejecución de cada trabajo está organizado según el experimento correspondiente en la pestaña "Experimentos" de Estudio. Si se omite, Azure Machine Learning establece de manera predeterminada el nombre del directorio de trabajo donde se creó el trabajo.
description string Descripción del trabajo.
tags object Diccionario de etiquetas para el trabajo.
code string Ruta de acceso local al directorio de código fuente que se va a cargar y usar para el trabajo.
code string Necesario. La ubicación de la carpeta que contiene el código fuente y los scripts de este trabajo.
entry object Necesario. Punto de entrada del trabajo. Podría definir un file.
entry.file string La ubicación de la carpeta que contiene el código fuente y los scripts de este trabajo.
py_files objeto Una lista de archivos .zip, .egg o .py que se colocarán en PYTHONPATH para la ejecución correcta del trabajo.
jars object Una lista de archivos .jar que se van a incluir en el controlador de Spark y el ejecutor CLASSPATH para la ejecución correcta del trabajo.
files object Una lista de archivos que se deben copiar en el directorio de trabajo de cada ejecutor para la ejecución correcta del trabajo.
archives object Una lista de archivos que se deben extraer en el directorio de trabajo de cada ejecutor para la ejecución correcta del trabajo.
conf object Propiedades del ejecutor y el controlador de Spark. Consulte Atributos de la clave conf.
environment cadena u objeto El entorno que se usará para el trabajo. El entorno puede ser una referencia a un entorno con versiones existente en el área de trabajo o una especificación de entorno insertado.

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 trabajo. Estos argumentos pueden contener las rutas de acceso de los datos de entrada y la ubicación en la que se va a escribir la salida, por ejemplo: "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
resources object Recursos que va a usar un proceso de Spark sin servidor de Azure Machine Learning. Se debe definir uno de los dos elementos, compute o resources.
resources.instance_type string Tipo de instancia de proceso que se va a usar para el grupo de Spark. standard_e4s_v3, standard_e8s_v3, standard_e16s_v3, standard_e32s_v3, standard_e64s_v3.
resources.runtime_version string Versión del entorno de ejecución de Spark. 3.2, 3.3
compute string Nombre del grupo de Spark de Synapse asociado en el que se va a ejecutar el trabajo. Se debe definir uno de los dos elementos, compute o resources.
inputs object Diccionario de entradas para el trabajo. La clave es un nombre para la entrada dentro del contexto del trabajo 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 trabajo.
outputs object Diccionario de configuraciones de salida del trabajo. La clave es un nombre para la salida dentro del contexto del trabajo 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 trabajo de Spark. La salida de un trabajo 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 trabajo.
identity object La identidad se usa para el acceso a datos. Puede ser UserIdentityConfiguration, ManagedIdentityConfiguration o None. Para UserIdentityConfiguration, se usa la identidad del remitente del trabajo para acceder a los datos de entrada y escribir el resultado en la carpeta de salida. De lo contrario, la identidad adecuada se basa en el tipo de proceso de Spark.

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 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 para el ejecutor de Spark, en gigabytes (GB); por ejemplo, 2g.
spark.dynamicAllocation.enabled boolean Indica si los ejecutores se deben asignar de forma dinámica, como valor True o False. Si esta propiedad está establecida en 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 Número de instancias del ejecutor de Spark.

Entradas de trabajo

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de entrada de trabajo. 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
path string Ruta de acceso a los datos que se va a usar como entrada. Se puede usar el identificador URI de los datos de entrada, como azureml://, abfss:// o wasbs://. Para obtener más información sobre el uso del formato de identificador URI azureml://, consulte Sintaxis principal de YAML.
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 trabajo. Tiene responsabilidad plena para controlar las credenciales de acceso al almacenamiento. direct

Salidas de trabajo

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de salida del trabajo. uri_file, uri_folder
path string Identificador URI de los datos de entrada, como azureml://, abfss:// o wasbs://.
mode string Modo de entrega de los archivos de salida al recurso de almacenamiento de destino. direct

Configuraciones de identidad

UserIdentityConfiguration

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de identidad. user_identity

ManagedIdentityConfiguration

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de identidad. managed

Observaciones

Los comandos az ml job se pueden usar para administrar los trabajos de Spark de Azure Machine Learning.

Ejemplos

Puede ver ejemplos en el repositorio de GitHub de ejemplos. A continuación, se muestran varios.

YAML: un trabajo de Spark independiente con un grupo de Spark de Synapse conectado y una identidad administrada

# 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: un trabajo de Spark independiente con un proceso de Spark sin servidor y una identidad de usuario

Pasos siguientes