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>