Udostępnij za pośrednictwem


Schemat YAML składnika Platformy Spark (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 2 (bieżąca)

Uwaga

Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.

Składnia YAML

Klucz Type Opis Dozwolone wartości Domyślna wartość
$schema string Schemat YAML. Jeśli używasz rozszerzenia programu VS Code usługi Azure Machine Learning do tworzenia pliku YAML, w tym $schema w górnej części pliku, możesz wywołać uzupełnianie schematu i zasobów.
type const Wymagany. Typ składnika. spark
name string Wymagany. Nazwa składnika. Musi zaczynać się od małej litery. Dozwolone znaki to małe litery, cyfry i podkreślenie(_). Maksymalna długość to 255 znaków.
version string Wersja składnika. W przypadku pominięcia usługa Azure Machine Learning automatycznie ocenia wersję.
display_name string Nazwa wyświetlana składnika w interfejsie użytkownika programu Studio. Może być nonunique w obszarze roboczym.
description string Opis składnika.
tags obiekt Słownik tagów dla składnika.
code string Wymagany. Lokalizacja folderu zawierającego kod źródłowy i skrypty dla składnika.
entry obiekt Wymagany. Punkt wejścia składnika. Może zdefiniować element file.
entry.file string Lokalizacja folderu zawierającego kod źródłowy i skrypty dla składnika.
py_files obiekt Lista .zipplików , .egglub .py , które mają zostać umieszczone w elemencie PYTHONPATH, w celu pomyślnego wykonania zadania za pomocą tego składnika.
jars obiekt Lista .jar plików, które mają być uwzględnione w sterowniku spark i funkcja CLASSPATHwykonawcza , w celu pomyślnego wykonania zadania z tym składnikiem.
files obiekt Lista plików, które powinny zostać skopiowane do katalogu roboczego każdego wykonawcy, w celu pomyślnego wykonania zadania za pomocą tego składnika.
archives obiekt Lista archiwów, które powinny zostać wyodrębnione do katalogu roboczego każdego wykonawcy, w celu pomyślnego wykonania zadania z tym składnikiem.
conf obiekt Właściwości sterownika i funkcji wykonawczej platformy Spark. Zobacz atrybuty conf klucza
environment ciąg lub obiekt Środowisko do użycia dla składnika. Ta wartość może być odwołaniem do istniejącego środowiska w wersji w obszarze roboczym lub specyfikacji środowiska wbudowanego.

Aby odwołać się do istniejącego środowiska, użyj azureml:<environment_name>:<environment_version> składni lub azureml:<environment_name>@latest (aby odwołać się do najnowszej wersji środowiska).

Aby zdefiniować wbudowane środowisko, postępuj zgodnie ze schematem środowiska. name Wyklucz właściwości iversion, ponieważ środowiska wbudowane nie obsługują ich.
args string Argumenty wiersza polecenia, które powinny zostać przekazane do skryptu języka Python punktu wejścia składnika. Te argumenty mogą zawierać ścieżki danych wejściowych i lokalizację zapisu danych wyjściowych, na przykład "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}"
inputs obiekt Słownik danych wejściowych składników. Klucz jest nazwą danych wejściowych w kontekście składnika, a wartość jest wartością wejściową.

Przy użyciu ${{ inputs.<input_name> }} wyrażenia można odwoływać się do args danych wejściowych.
inputs.<input_name> liczba, liczba całkowita, wartość logiczna, ciąg lub obiekt Jedna z wartości literału (typu liczba, liczba całkowita, wartość logiczna lub ciąg) lub obiekt zawierający specyfikację danych wejściowych składnika.
outputs obiekt Słownik konfiguracji danych wyjściowych składnika. Klucz jest nazwą danych wyjściowych w kontekście składnika, a wartość jest konfiguracją wyjściową.

Przy użyciu ${{ outputs.<output_name> }} wyrażenia można odwoływać się args do danych wyjściowych.
outputs.<output_name> obiekt Dane wyjściowe składnika Spark. Dane wyjściowe składnika Spark można zapisywać w pliku lub w lokalizacji folderu, podając obiekt zawierający specyfikację danych wyjściowych składnika.

conf Atrybuty klucza

Klucz Type Opis Domyślna wartość
spark.driver.cores integer Liczba rdzeni sterownika Spark.
spark.driver.memory string Przydzielona pamięć dla sterownika Spark w gigabajtach (GB), na przykład 2g.
spark.executor.cores integer Liczba rdzeni funkcji wykonawczej platformy Spark.
spark.executor.memory string Przydzielona pamięć dla funkcji wykonawczej platformy Spark w gigabajtach (GB), na przykład 2g.
spark.dynamicAllocation.enabled boolean Określa, czy funkcje wykonawcze powinny być przydzielane dynamicznie jako True wartość lub False . Jeśli ta właściwość jest ustawiona True, zdefiniuj spark.dynamicAllocation.minExecutors i spark.dynamicAllocation.maxExecutors. Jeśli ta właściwość jest ustawiona na Falsewartość , zdefiniuj spark.executor.instanceswartość . False
spark.dynamicAllocation.minExecutors integer Minimalna liczba wystąpień funkcji wykonawczych platformy Spark dla alokacji dynamicznej.
spark.dynamicAllocation.maxExecutors integer Maksymalna liczba wystąpień funkcji wykonawczych platformy Spark dla alokacji dynamicznej.
spark.executor.instances integer Liczba wystąpień funkcji wykonawczej platformy Spark.

Dane wejściowe składników

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Typ danych wejściowych składnika. Określ uri_file dane wejściowe wskazujące jedno źródło plików lub uri_folder dane wejściowe wskazujące źródło folderu. Dowiedz się więcej o dostępie do danych. uri_file, uri_folder
mode string Tryb dostarczania danych do docelowego obiektu obliczeniowego. Tryb direct przechodzi w adresIE URL lokalizacji magazynu jako dane wejściowe składnika. Masz pełną odpowiedzialność za obsługę poświadczeń dostępu do magazynu. direct

Dane wyjściowe składników

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Typ danych wyjściowych składnika. uri_file, uri_folder
mode string Tryb dostarczania plików wyjściowych do docelowego zasobu magazynu. direct

Uwagi

Polecenia az ml component mogą służyć do zarządzania składnikiem platformy Spark w usłudze Azure Machine Learning.

Przykłady

Przykłady są dostępne w repozytorium GitHub przykłady. Kilka zostanie wyświetlonych obok.

YAML: przykładowy składnik Platformy Spark

# 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: przykładowe zadanie potoku ze składnikiem platformy 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>

Następne kroki