Teilen über


YAML-Schema für Spark-Aufträge der CLI (v2)

GILT FÜRAzure 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>

YAML: Ein eigenständiger Spark-Auftrag mit serverloser Spark-Compute- und Benutzeridentität

Nächste Schritte