YAML-Schema für Spark-Aufträge 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. Typ des Auftrags. | spark |
|
name |
Zeichenfolge | Der Name des Auftrags. Muss für alle Aufträge im Arbeitsbereich eindeutig sein. Falls nicht angegeben, generiert Azure Machine Learning automatisch eine GUID für den Namen. | ||
display_name |
Zeichenfolge | Der Anzeigename des Auftrags auf der Studio-Benutzeroberfläche. Kann innerhalb des Arbeitsbereichs uneindeutig sein. Falls nicht angegeben, generiert Azure Machine Learning als Anzeigename automatisch einen für Menschen lesbaren Bezeichner aus Adjektiv und Nomen. | ||
experiment_name |
Zeichenfolge | Der Experimentname zum Organisieren des Auftrags. Die Ausführungsaufzeichnung jedes Auftrags ist im Studio auf der Registerkarte „Experimente“ unter dem entsprechenden Experiment strukturiert. Falls nicht angegeben, verwendet Azure Machine Learning standardmäßig den Namen des Arbeitsverzeichnisses, in dem der Auftrag erstellt wurde. | ||
description |
Zeichenfolge | Die Beschreibung des Auftrags | ||
tags |
Objekt (object) | Wörterbuch der Tags für den Auftrag. | ||
code |
Zeichenfolge | Lokaler Pfad zum Quellcodeverzeichnis, das hochgeladen und für den Auftrag verwendet werden soll. | ||
code |
Zeichenfolge | Erforderlich. Der Speicherort des Ordners, der Quellcode und Skripts für diesen Job enthält. | ||
entry |
Objekt (object) | Erforderlich. Der Einstiegspunkt für den Auftrag. Es könnte ein file . |
||
entry.file |
Zeichenfolge | Der Speicherort des Ordners, der Quellcode und Skripts für diesen Job enthält. | ||
py_files |
Objekt | Eine Liste mit Dateien vom Typ .zip , .egg oder .py , die am Python-Pfad (PYTHONPATH ) platziert werden müssen, damit der Auftrag erfolgreich ausgeführt werden kann. |
||
jars |
Objekt (object) | Eine Liste mit Dateien vom Typ .jar , die in den Spark-Treiber eingeschlossen werden müssen, sowie der Executor-Klassenpfad (CLASSPATH ), damit der Auftrag erfolgreich ausgeführt werden kann. |
||
files |
Objekt (object) | Eine Liste mit Dateien, die für die erfolgreiche Auftragsausführung in das Arbeitsverzeichnis jedes Executors kopiert werden müssen. | ||
archives |
Objekt (object) | Eine Liste mit Archiven, die für die erfolgreiche Auftragsausführung im Arbeitsverzeichnis jedes Executors extrahiert werden müssen. | ||
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 den Auftrag verwendet werden soll. Die Umgebung kann entweder ein Verweis auf eine vorhandene versionierte Umgebung im Arbeitsbereich oder eine Inline-Umgebungsspezifikation 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 des Auftragseinstiegspunkts übergeben werden sollen. Diese Argumente können die Eingabedatenpfade und den Speicherort zum Schreiben der Ausgabe enthalten, z. B. "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}" . |
||
resources |
Objekt (object) | Die Ressourcen, die von einer serverlosen Spark-Compute-Instanz von Azure Machine Learning verwendet werden sollen. Es muss mindestens compute oder resources definiert werden. |
||
resources.instance_type |
Zeichenfolge | Der Compute-Instanztyp, der für den Spark-Pool verwendet werden soll. | standard_e4s_v3 , standard_e8s_v3 , standard_e16s_v3 , standard_e32s_v3 , . standard_e64s_v3 |
|
resources.runtime_version |
Zeichenfolge | Die Spark-Runtimeversion. | 3.2 , 3.3 |
|
compute |
Zeichenfolge | Der Name des angefügten Synapse Spark-Pools, für den der Auftrag ausgeführt werden soll. Es muss mindestens compute oder resources definiert werden. |
||
inputs |
Objekt (object) | Wörterbuch der Eingaben für den Auftrag. Der Schlüssel ist ein Name für die Eingabe im Kontext des Auftrags, 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 Zahl, Integer, boolescher Wert oder Zeichenfolge) oder ein Objekt, das eine Datenspezifikation für Auftragseingaben enthält. | ||
outputs |
Objekt (object) | Wörterbuch der Ausgabekonfigurationen des Auftrags. Der Schlüssel ist ein 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 des Spark-Auftrags. Die Ausgabe für einen Spark-Auftrag kann entweder in eine Datei oder in einen Ordner geschrieben werden, indem Sie ein Objekt bereitstellen, das die Spezifikation der Auftragsausgabe enthält. | ||
identity |
Objekt (object) | Die Identität wird für den Datenzugriff verwendet. Dafür kann UserIdentityConfiguration, ManagedIdentityConfiguration oder „Kein“ verwendet werden. Für UserIdentityConfiguration wird die Identität des Auftragsübermittlers bzw. der Auftragsübermittlerin verwendet, um auf die Eingabedaten zuzugreifen und das Ergebnis in den Ausgabeordner zu schreiben. Andernfalls basiert die entsprechende Identität auf dem Spark-Computetyp. |
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 zugeordnete 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 zugeordnete Arbeitsspeicher in Gigabyte (GB), z. B. 2g . |
|
spark.dynamicAllocation.enabled |
boolean | Gibt an, ob Executors dynamisch als Wert True oder False zugeordnet werden sollen. Wenn diese Eigenschaft auf True festgelegt ist, definieren Sie spark.dynamicAllocation.minExecutors und spark.dynamicAllocation.maxExecutors . 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 von Spark-Executorinstanzen. |
Auftragseingaben
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
type |
Zeichenfolge | Der Typ der Auftragseingabe. 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 |
|
path |
Zeichenfolge | Der Pfad zu den Daten, die als Eingabe verwendet werden sollen. Der URI der Eingabedaten (beispielsweise azureml:// , abfss:// oder wasbs:// ). Weitere Informationen zur Verwendung des URI-Formats azureml:// finden Sie unter YAML-Kernsyntax. |
||
mode |
Zeichenfolge | Modus, in dem die Daten an das Computeziel übermittelt werden sollen. Im Modus direct wird die URL des Speicherorts als Auftragseingabe übergeben. Sie sind uneingeschränkt für den Umgang mit Anmeldeinformationen für den Speicherzugriff verantwortlich. |
direct |
Auftragsausgaben
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
type |
Zeichenfolge | Der Typ der Auftragsausgabe. | uri_file , uri_folder |
|
path |
Zeichenfolge | Der URI der Eingabedaten (beispielsweise azureml:// , abfss:// oder wasbs:// ). |
||
mode |
Zeichenfolge | Der Modus für die Übermittlung von Ausgabedateien an die Zielspeicherressource. | direct |
Identitätskonfigurationen
UserIdentityConfiguration
Schlüssel | type | BESCHREIBUNG | Zulässige Werte |
---|---|---|---|
type |
const | Erforderlich. Identitätstyp | user_identity |
ManagedIdentityConfiguration
Schlüssel | type | BESCHREIBUNG | Zulässige Werte |
---|---|---|---|
type |
const | Erforderlich. Identitätstyp | managed |
Bemerkungen
Mit den Befehlen vom Typ az ml job
können Sie Spark-Aufträge von Azure Machine Learning verwalten.
Beispiele
Beispiele finden Sie im GitHub-Repository für Beispiele. Im Anschluss sind mehrere aufgeführt.
YAML: Ein eigenständiger Spark-Auftrag mit angefügtem Synapse Spark-Pool und verwalteter Identität
# 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>