Schema YAML del processo Spark (v2) dell'interfaccia della riga di comando
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Nota
La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. Il funzionamento di questa sintassi è garantito solo con la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. È possibile trovare gli schemi per le versioni di estensione precedenti in https://azuremlschemasprod.azureedge.net/.
Sintassi YAML
Chiave | Type | Descrizione | Valori consentiti | Valore predefinito |
---|---|---|---|---|
$schema |
string | Schema YAML. Se si usa l'estensione Azure Machine Learning per Visual Studio Code per creare il file YAML, l'inclusione di $schema nella parte superiore del file consente di richiamare i completamenti dello schema e delle risorse. |
||
type |
const | Obbligatorio. Tipo di processo. | spark |
|
name |
string | Nome del processo. Deve essere univoco in tutti i processi nell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un GUID per il nome. | ||
display_name |
string | Nome visualizzato del processo nell'interfaccia utente di Studio. Può essere non univoco all'interno dell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un identificatore aggettivo-sostantivo leggibile per il nome visualizzato. | ||
experiment_name |
string | Nome dell'esperimento in cui organizzare il processo. Il record di esecuzione di ogni processo è organizzato nell'esperimento corrispondente nella scheda "Esperimenti" dello studio. Se omesso, Azure Machine Learning lo imposta come predefinito come nome della directory di lavoro in cui è stato creato il processo. | ||
description |
string | Descrizione del processo. | ||
tags |
oggetto | Dizionario dei tag per il processo. | ||
code |
string | Percorso locale della directory del codice sorgente da caricare e usare per il processo. | ||
code |
string | Obbligatorio. Percorso della cartella che contiene codice sorgente e script per questo processo. | ||
entry |
oggetto | Obbligatorio. Punto di ingresso per il processo. Può definire un oggetto file . |
||
entry.file |
string | Percorso della cartella che contiene codice sorgente e script per questo processo. | ||
py_files |
oggetto | Elenco di .zip file , .egg o .py da inserire in per l'esecuzione PYTHONPATH corretta del processo. |
||
jars |
oggetto | Elenco di .jar file da includere nel driver Spark e nell'executor CLASSPATH per l'esecuzione corretta del processo. |
||
files |
oggetto | Elenco di file che devono essere copiati nella directory di lavoro di ogni executor, per un'esecuzione corretta del processo. | ||
archives |
oggetto | Elenco di archivi che devono essere estratti nella directory di lavoro di ogni executor per l'esecuzione corretta del processo. | ||
conf |
oggetto | Proprietà del driver Spark e dell'executor. Vedere Attributi della conf chiave |
||
environment |
stringa o oggetto | Ambiente da usare per il processo. L'ambiente può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica di ambiente inline. Per fare riferimento a un ambiente esistente, usare la azureml:<environment_name>:<environment_version> sintassi o azureml:<environment_name>@latest per fare riferimento alla versione più recente di un ambiente. Per definire un ambiente inline, seguire lo schema Ambiente. Escludere le name proprietà e version perché gli ambienti inline non li supportano. |
||
args |
string | Argomenti della riga di comando che devono essere passati allo script Python del punto di ingresso del processo. Questi argomenti possono contenere i percorsi dei dati di input, il percorso in cui scrivere l'output, ad esempio "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}" |
||
resources |
oggetto | Risorse da usare da un ambiente di calcolo Spark serverless di Azure Machine Learning. Uno degli compute elementi o resources deve essere definito. |
||
resources.instance_type |
string | Tipo di istanza di calcolo da usare per il pool di Spark. | standard_e4s_v3 , standard_e8s_v3 , standard_e16s_v3 , standard_e32s_v3 , . standard_e64s_v3 |
|
resources.runtime_version |
string | Versione del runtime di Spark. | 3.2 , 3.3 |
|
compute |
string | Nome del pool di Spark synapse collegato in cui eseguire il processo. Uno degli compute elementi o resources deve essere definito. |
||
inputs |
oggetto | Dizionario di input per il processo. La chiave è un nome per l'input nel contesto del processo e il valore è il valore di input. È possibile fare riferimento agli input nell'oggetto args usando l'espressione ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
number, integer, boolean, string or object | Uno dei valori letterali (di tipo number, integer, boolean o string) o un oggetto contenente una specifica dei dati di input del processo. | ||
outputs |
oggetto | Dizionario delle configurazioni di output del processo. La chiave è un nome per l'output nel contesto del processo e il valore è la configurazione di output. È possibile fare riferimento agli output nell'oggetto args usando l'espressione ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
oggetto | Output del processo Spark. L'output per un processo Spark può essere scritto in un file o in un percorso di cartella specificando un oggetto contenente la specifica dell'output del processo. | ||
identity |
oggetto | L'identità viene usata per l'accesso ai dati. Può essere UserIdentityConfiguration, ManagedIdentityConfiguration o Nessuno. Per UserIdentityConfiguration, l'identità del mittente del processo viene usata per accedere ai dati di input e scrivere il risultato nella cartella di output. In caso contrario, l'identità appropriata si basa sul tipo di calcolo Spark. |
Attributi della conf
chiave
Chiave | Type | Descrizione | Default value |
---|---|---|---|
spark.driver.cores |
integer | Numero di core per il driver Spark. | |
spark.driver.memory |
string | Memoria allocata per il driver Spark, in gigabyte (GB); ad esempio . 2g |
|
spark.executor.cores |
integer | Numero di core per l'executor Spark. | |
spark.executor.memory |
string | Memoria allocata per l'executor Spark, in gigabyte (GB); ad esempio . 2g |
|
spark.dynamicAllocation.enabled |
boolean | Indica se gli executor devono essere allocati in modo dinamico, come True valore o False . Se questa proprietà è impostata True , definire spark.dynamicAllocation.minExecutors e spark.dynamicAllocation.maxExecutors . Se questa proprietà è impostata su False , definire spark.executor.instances . |
False |
spark.dynamicAllocation.minExecutors |
integer | Numero minimo di istanze di executor Spark per l'allocazione dinamica. | |
spark.dynamicAllocation.maxExecutors |
integer | Numero massimo di istanze di executor Spark per l'allocazione dinamica. | |
spark.executor.instances |
integer | Numero di istanze dell'executor Spark. |
Input del processo
Chiave | Type | Descrizione | Valori consentiti | Valore predefinito |
---|---|---|---|---|
type |
string | Tipo di input del processo. Specificare uri_file per i dati di input che puntano a una singola origine file o uri_folder per i dati di input che puntano a un'origine cartella. Altre informazioni sull'accesso ai dati. |
uri_file , uri_folder |
|
path |
string | Percorso dei dati da usare come input. È possibile usare l'URI dei dati di input, ad esempio azureml:// , abfss:// o wasbs:// . Per altre informazioni sull'uso del azureml:// formato URI, vedere sintassi yaml di base. |
||
mode |
string | Modalità di distribuzione dei dati alla destinazione di calcolo. La direct modalità passa l'URL della posizione di archiviazione come input del processo. Si ha la piena responsabilità di gestire le credenziali di accesso alle risorse di archiviazione. |
direct |
Output del processo
Chiave | Type | Descrizione | Valori consentiti | Valore predefinito |
---|---|---|---|---|
type |
string | Tipo di output del processo. | uri_file , uri_folder |
|
path |
string | URI dei dati di input, ad esempio azureml:// , abfss:// o wasbs:// . |
||
mode |
string | Modalità di recapito dei file di output alla risorsa di archiviazione di destinazione. | direct |
Configurazioni di identità
UserIdentityConfiguration
Chiave | Type | Descrizione | Valori consentiti |
---|---|---|---|
type |
const | Obbligatorio. Tipo di identità. | user_identity |
ManagedIdentityConfiguration
Chiave | Type | Descrizione | Valori consentiti |
---|---|---|---|
type |
const | Obbligatorio. Tipo di identità. | managed |
Osservazioni:
I az ml job
comandi possono essere usati per la gestione dei processi Spark di Azure Machine Learning.
Esempi
Vedere esempi in esempi di repository GitHub. Di seguito vengono visualizzati diversi elementi.
YAML: processo Spark autonomo usando il pool di Spark di Synapse collegato e l'identità gestita
# 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>