Freigeben über


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>

Nächste Schritte