次の方法で共有


CLI (v2) Spark コンポーネント YAML スキーマ

適用対象:Azure CLI ml 拡張機能 v2 (現行)

このドキュメントで詳しく説明されている YAML 構文は、最新バージョンの ML CLI v2 拡張機能の JSON スキーマに基づいています。 この構文は、ML CLI v2 拡張機能の最新バージョンでのみ動作することが保証されています。 以前のバージョンの拡張機能のスキーマについては、https://azuremlschemasprod.azureedge.net/ でご確認いただけます。

YAML 構文

キー タイプ 説明 使用できる値 既定値
$schema ひも YAML スキーマ。 Azure Machine Learning 用 VS Code 拡張機能を使用して YAML ファイルを作成する場合は、ファイルの先頭に $schema を含めることで、スキーマとリソースの入力候補を呼び出すことができます。
type 定数 必須。 コンポーネントの種類。 spark
name ひも 必須。 コンポーネント名。 先頭には小文字を使用する必要があります。 使用できる文字は、小文字、数字、アンダースコア (_) です。 最大文字数は 255 文字です。
version ひも コンポーネントのバージョン。 省略した場合、Azure Machine Learning によってバージョンが自動生成されます。
display_name ひも Studio UI でのコンポーネントの表示名。 ワークスペース内で一意ではない場合があります。
description ひも コンポーネントの説明。
tags オブジェクト コンポーネントのタグの辞書。
code ひも 必須。 コンポーネントのソース コードとスクリプトを含むフォルダーの場所。
entry オブジェクト 必須。 コンポーネントのエントリ ポイント。 fileを定義できます。
entry.file ひも コンポーネントのソース コードとスクリプトを含むフォルダーの場所。
py_files オブジェクト このコンポーネントでジョブを正常に実行するために、.zip に配置する .egg.pyPYTHONPATH のリスト。
jars オブジェクト このコンポーネントでジョブを正常に実行するために、Spark ドライバーに含める .jar ファイルのリストと、Executor の CLASSPATH
files オブジェクト このコンポーネントでジョブを正常に実行するために、各 Executor の作業ディレクトリにコピーする必要があるファイルのリスト。
archives オブジェクト このコンポーネントでジョブを正常に実行するために、各 Executor の作業ディレクトリに抽出する必要があるアーカイブのリスト。
conf オブジェクト Spark ドライバーと Executor プロパティ。 「conf キーの属性」を参照してください
environment 文字列またはオブジェクト コンポーネントに使用する環境。 この値は、ワークスペース内の既存のバージョン管理された環境への参照、またはインライン環境仕様のいずれかになります。

既存の環境を参照するには、azureml:<environment_name>:<environment_version> 構文または azureml:<environment_name>@latest (環境の最新バージョンを参照する場合) を使用します。

環境をインラインで定義するには、環境スキーマに従います。 nameversion プロパティは、インライン環境ではサポートされていないため除外します。
args ひも コンポーネント エントリ ポイント Python スクリプトに渡す必要があるコマンド ライン引数。 これらの引数には、入力データのパスと、出力を書き込む場所が含まれる場合があります (例: "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}")
inputs オブジェクト コンポーネント入力の辞書。 キーは、コンポーネントのコンテキスト内の入力の名前であり、値は入力値です。

入力は、args 式を使用して ${{ inputs.<input_name> }} で参照できます。
inputs.<input_name> 数値、整数、ブール値、文字列、またはオブジェクト リテラル値 (型番号、整数、ブール値、または文字列) のいずれか、またはコンポーネント入力データ仕様を含むオブジェクト。
outputs オブジェクト コンポーネントの出力構成の辞書。 キーはコンポーネントのコンテキスト内の出力の名前であり、値は出力構成です。

出力は、args 式を使用して ${{ outputs.<output_name> }} で参照できます。
outputs.<output_name> オブジェクト Spark コンポーネントの出力。 Spark コンポーネントの出力は、コンポーネント出力仕様を含むオブジェクトを指定することで、ファイルまたはフォルダーの場所に書き込むことができます。

conf キーの属性

キー タイプ 説明 既定値
spark.driver.cores 整数 Spark ドライバー用のコアの数。
spark.driver.memory ひも Spark ドライバー用に割り当てられたメモリ (ギガバイト (GB) 単位)。たとえば、2g です。
spark.executor.cores 整数 Spark Executor 用のコアの数。
spark.executor.memory ひも Spark Executor 用に割り当てられたメモリ (ギガバイト (GB) 単位)。たとえば、2g です。
spark.dynamicAllocation.enabled ブーリアン Executor を動的に割り当てる必要があるかどうか。値は True または False です。 このプロパティが True に設定されている場合は、spark.dynamicAllocation.minExecutorsspark.dynamicAllocation.maxExecutors を定義します。 このプロパティが False に設定されている場合、spark.executor.instances を定義します。 False
spark.dynamicAllocation.minExecutors 整数 動的割り当て用の Spark Executor インスタンスの最小数。
spark.dynamicAllocation.maxExecutors 整数 動的割り当て用の Spark Executor インスタンスの最大数。
spark.executor.instances 整数 Spark Executor インスタンスの数。

コンポーネントの入力

キー タイプ 説明 使用できる値 既定値
type ひも コンポーネント入力の種類。 1 つのファイル ソースを指す入力データの場合は uri_file、フォルダー ソースを指す入力データの場合は uri_folder を指定します。 データ アクセスの詳細について確認してください uri_fileuri_folder
mode ひも コンピューティング先にデータを配信する方法のモード。 direct モードでは、保存場所の URL がコンポーネント入力として渡されます。 ストレージ アクセスの資格情報を扱うすべての責任はお客様にあります。 direct

コンポーネントの出力

キー タイプ 説明 使用できる値 既定値
type ひも コンポーネント出力の種類。 uri_fileuri_folder
mode ひも 出力ファイルを宛先ストレージ リソースに配信するモード。 direct

解説

az ml component コマンドを使用して、Azure Machine Learning Spark コンポーネントを管理できます。

例は、GitHub リポジトリの例にあります。 いくつかを次に示します。

YAML: サンプル 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: 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>

次の手順