YAML-Schema für Spark-Komponenten der CLI (v2)
GILT FÜR Azure CLI-ML-Erweiterung v2 (aktuell)
Hinweis
Die in diesem Dokument beschriebene YAML-Syntax basiert auf dem JSON-Schema für die neueste Version der ML CLI v2-Erweiterung. Die Funktion dieser Syntax wird nur mit der neuesten Version der ML CLI v2-Erweiterung garantiert. Die Schemas für ältere Erweiterungsversionen finden Sie unter https://azuremlschemasprod.azureedge.net/.
YAML-Syntax
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
$schema |
Zeichenfolge | Das YAML-Schema. Wenn Sie die VS Code-Erweiterung für Azure Machine Learning zum Erstellen einer YAML-Datei verwenden, können Sie durch das Einfügen von $schema am Anfang der Datei Schema- und Ressourcenvervollständigungen aufrufen. |
||
type |
const | Erforderlich. Der Typ der Komponente. | spark |
|
name |
Zeichenfolge | Erforderlich. Der Name der Komponente. Muss mit einem Kleinbuchstaben beginnen. Zulässige Zeichen sind Kleinbuchstaben, Zahlen und Unterstriche (_). Die maximale Länge beträgt 255 Zeichen. | ||
version |
Zeichenfolge | Version der Komponente. Wenn hier keine Angaben gemacht werden, generiert Azure Machine Learning automatisch eine Version. | ||
display_name |
Zeichenfolge | Anzeigename der Komponente auf der Studio-Benutzeroberfläche Kann innerhalb des Arbeitsbereichs uneindeutig sein. | ||
description |
Zeichenfolge | Die Beschreibung der Komponente | ||
tags |
Objekt (object) | Wörterbuch der Tags für die Komponente | ||
code |
Zeichenfolge | Erforderlich. Der Speicherort des Ordners mit Quellcode und Skripts für die Komponente. | ||
entry |
Objekt (object) | Erforderlich. Der Einstiegspunkt für die Komponente. Es könnte ein file . |
||
entry.file |
Zeichenfolge | Der Speicherort des Ordners mit Quellcode und Skripts für die Komponente. | ||
py_files |
Objekt | Eine Liste von .zip -, .egg - oder .py -Dateien, die in PYTHONPATH abgelegt werden müssen, damit der Auftrag mit dieser Komponente erfolgreich ausgeführt werden kann. |
||
jars |
Objekt (object) | Eine Liste mit .jar -Dateien, die für die erfolgreiche Ausführung des Auftrags in den Spark-Treiber und den Executor CLASSPATH eingeschlossen werden sollen. |
||
files |
Objekt (object) | Eine Liste mit Dateien, die für die erfolgreiche Ausführung des Auftrags mit dieser Komponente in das Arbeitsverzeichnis jedes Executors kopiert werden sollen. | ||
archives |
Objekt (object) | Eine Liste mit Archiven, die für die erfolgreiche Ausführung des Auftrags mit dieser Komponente in das Arbeitsverzeichnis jedes Executors extrahiert werden sollen. | ||
conf |
Objekt (object) | Die Eigenschaften des Spark-Treibers und -Executors. Weitere Informationen finden Sie unter Attribute des conf -Schlüssels. |
||
environment |
Zeichenfolge oder Objekt | Die Umgebung, die für die Komponente verwendet werden soll. Dieser Wert kann entweder ein Verweis auf eine vorhandene Umgebung mit Versionsangabe im Arbeitsbereich oder eine Inlineumgebungsspezifikation sein. Um auf eine vorhandene Umgebung zu verweisen, verwenden Sie die Syntax azureml:<environment_name>:<environment_version> oder azureml:<environment_name>@latest (um auf die neueste Version einer Umgebung zu verweisen). Um eine Umgebung inline zu definieren, befolgen Sie das Umgebungsschema. Schließen Sie die Eigenschaften name und version aus, da sie in Inline-Umgebungen nicht unterstützt werden. |
||
args |
Zeichenfolge | Die Befehlszeilenargumente, die an das Python-Skript der Komponente übergeben werden sollen. Diese Argumente können die Pfade von Eingabedaten und den Speicherort zum Schreiben der Ausgabe enthalten, z. B. "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}" |
||
inputs |
Objekt (object) | Wörterbuch der Komponenteneingaben Der Schlüssel ist ein Name für die Eingabe im Kontext der Komponente, und der Wert ist der Eingabewert. Eingaben können im args mit dem Ausdruck ${{ inputs.<input_name> }} verwiesen werden. |
||
inputs.<input_name> |
number, integer, boolean, string oder object | Ein Literalwert (vom Typ „number“, „integer“, „boolean“ oder „string“) oder ein Objekt, das eine Datenspezifikation für Komponenteneingaben enthält. | ||
outputs |
Objekt (object) | Wörterbuch der Ausgabekonfigurationen der Komponente. Der Schlüssel ist der Name für die Ausgabe im Kontext des Auftrags, und der Wert ist die Ausgabekonfiguration. Ausgaben können im args mit dem Ausdruck ${{ outputs.<output_name> }} verwiesen werden. |
||
outputs.<output_name> |
Objekt (object) | Die Ausgabe der Spark-Komponente. Die Ausgabe für eine Spark-Komponente kann entweder in eine Datei oder in einen Ordner geschrieben werden, indem Sie ein Objekt bereitstellen, das die Spezifikation der Komponentenausgabe enthält. |
Attribute des conf
-Schlüssels
Schlüssel | type | BESCHREIBUNG | Standardwert |
---|---|---|---|
spark.driver.cores |
integer | Die Anzahl der Kerne des Spark-Treibers. | |
spark.driver.memory |
Zeichenfolge | Der dem Spark-Treiber zugeteilte Arbeitsspeicher in Gigabyte (GB), z. B. 2g . |
|
spark.executor.cores |
integer | Die Anzahl der Kerne des Spark-Executors. | |
spark.executor.memory |
Zeichenfolge | Der dem Spark-Executor zugeteilte Arbeitsspeicher in Gigabyte (GB), z. B. 2g . |
|
spark.dynamicAllocation.enabled |
boolean | Gibt an, ob Executors dynamisch der Wert True oder False zugeordnet werden soll. Wenn diese Eigenschaft auf True festgelegt ist, legen Sie spark.dynamicAllocation.minExecutors und spark.dynamicAllocation.maxExecutors fest. Wenn diese Eigenschaft auf False festgelegt ist, legen Sie spark.executor.instances fest. |
False |
spark.dynamicAllocation.minExecutors |
integer | Die Mindestanzahl der Instanzen von Spark-Executors für die dynamische Zuteilung. | |
spark.dynamicAllocation.maxExecutors |
integer | Die maximale Anzahl der Instanzen von Spark-Executors für die dynamische Zuteilung. | |
spark.executor.instances |
integer | Die Anzahl der Instanzen von Spark-Executors. |
Komponenteneingaben
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
type |
Zeichenfolge | Der Typ der Komponenteneingabe Geben Sie für Eingabedaten, die auf eine einzelne Dateiquelle verweisen, uri_file und für Eingabedaten, die auf eine Ordnerquelle verweisen, uri_folder an. Erfahren Sie mehr über Datenzugriff. |
uri_file , uri_folder |
|
mode |
Zeichenfolge | Modus, in dem die Daten an das Computeziel übermittelt werden sollen. Im Modus direct wird die URL des Speicherorts als Komponenteneingabe übergeben. Sie sind für den Umgang mit Anmeldeinformationen für den Speicherzugriff voll verantwortlich. |
direct |
Komponentenausgaben
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
type |
Zeichenfolge | Der Typ der Komponentenausgabe | uri_file , uri_folder |
|
mode |
Zeichenfolge | Der Übermittlungsmodus der Ausgabedateien an die Zielspeicherressource. | direct |
Bemerkungen
Mit den az ml component
-Befehlen können Sie Spark-Komponenten von Azure Machine Learning verwalten.
Beispiele
Beispiele finden Sie im GitHub-Beispielrepository. Im Folgenden sind mehrere aufgeführt.
YAML: eine Spark-Beispielkomponente
# 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: ein Beispiel eines Pipelineauftrags mit einer Spark-Komponente
# 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>