Condividi tramite


Schema YAML del componente 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 componente. spark
name string Obbligatorio. Nome del componente. Deve iniziare con una lettera minuscola. I caratteri consentiti sono lettere minuscole, numeri e caratteri di sottolineatura(_). La lunghezza massima consentita è di 255 caratteri.
version string Versione del componente. Se omesso, Azure Machine Learning genera automaticamente una versione.
display_name string Nome visualizzato del componente nell'interfaccia utente di Studio. Può essere non univoco all'interno dell'area di lavoro.
description string Descrizione del componente.
tags oggetto Dizionario dei tag per il componente.
code string Obbligatorio. Percorso della cartella che contiene codice sorgente e script per il componente.
entry oggetto Obbligatorio. Punto di ingresso per il componente. Può definire un oggetto file.
entry.file string Percorso della cartella che contiene codice sorgente e script per il componente.
py_files oggetto Elenco di .zipfile , .eggo .py da inserire in per l'esecuzione PYTHONPATHcorretta del processo con questo componente.
jars oggetto Elenco di .jar file da includere nel driver Spark e nell'executor CLASSPATHper la corretta esecuzione del processo con questo componente.
files oggetto Elenco di file che devono essere copiati nella directory di lavoro di ogni executor, per un'esecuzione corretta del processo con questo componente.
archives oggetto Elenco di archivi che devono essere estratti nella directory di lavoro di ogni executor, per un'esecuzione corretta del processo con questo componente.
conf oggetto Proprietà del driver Spark e dell'executor. Vedere Attributi della conf chiave
environment stringa o oggetto Ambiente da usare per il componente. Questo valore può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica dell'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 componente. Questi argomenti possono contenere i percorsi dei dati di input e la posizione in cui scrivere l'output, ad esempio "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
inputs oggetto Dizionario degli input del componente. La chiave è un nome per l'input all'interno del contesto del componente 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 di un valore letterale (di tipo number, integer, boolean o string) o di un oggetto contenente una specifica dei dati di input del componente.
outputs oggetto Dizionario delle configurazioni di output del componente. La chiave è un nome per l'output all'interno del contesto del componente 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 componente Spark. L'output per un componente Spark può essere scritto in un file o in un percorso di cartella specificando un oggetto contenente la specifica di output del componente.

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 dei componenti

Chiave Type Descrizione Valori consentiti Valore predefinito
type string Tipo di input del componente. 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
mode string Modalità di distribuzione dei dati alla destinazione di calcolo. La direct modalità passa l'URL del percorso di archiviazione come input del componente. Si ha la piena responsabilità di gestire le credenziali di accesso alle risorse di archiviazione. direct

Output dei componenti

Chiave Type Descrizione Valori consentiti Valore predefinito
type string Tipo di output del componente. uri_file, uri_folder
mode string Modalità di recapito dei file di output alla risorsa di archiviazione di destinazione. direct

Osservazioni:

I az ml component comandi possono essere usati per la gestione del componente Spark di Azure Machine Learning.

Esempi

Gli esempi sono disponibili nel repository GitHub di esempi. Di seguito vengono visualizzati diversi elementi.

YAML: componente Spark di esempio

# 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: processo della pipeline di esempio con un componente 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>

Passaggi successivi