次の方法で共有


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 ひも ジョブの名前。 ワークスペース内のすべてのジョブで一意である必要があります。 省略した場合、Azure Machine Learning によって名前の GUID が自動生成されます。
display_name ひも スタジオ UI でのジョブの表示名。 ワークスペース内で一意ではない場合があります。 省略した場合、Azure Machine Learning により、表示名として、人間が判読できる形容詞と名詞の識別子が自動生成されます。
experiment_name ひも ジョブを整理するための実験名。 各ジョブの実行レコードは、スタジオの [実験] タブの対応する実験の下に編成されます。 省略された場合、Azure Machine Learning では、ジョブが作成された作業ディレクトリの名前が既定で設定されます。
description ひも ジョブの説明。
tags オブジェクト ジョブのタグの辞書。
code ひも アップロードしてジョブに使用するソース コード ディレクトリへのローカル パス。
code ひも 必須です。 このジョブのソース コードとスクリプトを含むフォルダーの場所。
entry オブジェクト 必須です。 ジョブのエントリ ポイント。 fileを定義できます。
entry.file ひも このジョブのソース コードとスクリプトを含むフォルダーの場所。
py_files オブジェクト ジョブを正常に実行するために .zip に配置する、.egg.py、または PYTHONPATH ファイルの一覧。
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>}}")
resources オブジェクト Azure Machine Learning サーバーレス Spark コンピューティングで使われるリソース。 compute または resources のいずれかが定義されている必要があります。
resources.instance_type ひも Spark プールに使われるコンピューティング インスタンスの種類。 standard_e4s_v3standard_e8s_v3standard_e16s_v3standard_e32s_v3standard_e64s_v3
resources.runtime_version ひも Spark ランタイムのバージョン。 3.23.3
compute ひも ジョブを実行するアタッチされた Synapse Spark プールの名前。 compute または resources のいずれかが定義されている必要があります。
inputs オブジェクト ジョブへの入力の辞書。 キーは、ジョブのコンテキスト内の入力の名前であり、値は入力値です。

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

出力は、args 式を使用して ${{ outputs.<output_name> }} で参照できます。
outputs.<output_name> オブジェクト Spark ジョブの出力。 Spark ジョブの出力は、ジョブ出力仕様を含むオブジェクトを指定することで、ファイルまたはフォルダーの場所に書き込むことができます。
identity オブジェクト ID は、データアクセスに使用されます。 UserIdentityConfigurationManagedIdentityConfiguration、または None を指定できます。 UserIdentityConfiguration の場合、ジョブ送信者の ID を使って入力データにアクセスし、結果を出力フォルダーに書き込みます。 それ以外の場合、適切な ID は 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
path ひも 入力として使用するデータのパス。 入力データの URI (azureml://abfss://wasbs:// など) を使用できます。 azureml:// URI 形式の使用方法の詳細については、コア yaml 構文に関する記事を参照してください。
mode ひも コンピューティング先にデータを配信する方法のモード。 direct モードでは、ジョブ入力として保存場所の URL が渡されます。 ストレージのアクセス資格情報の取り扱いは、全面的にユーザーの責任になります。 direct

ジョブ出力

キー タイプ 説明 使用できる値 既定値
type ひも ジョブ出力の種類。 uri_fileuri_folder
path ひも 入力データの URI (azureml://abfss://wasbs:// など)。
mode ひも 宛先ストレージ リソースへの出力ファイル配信のモード。 direct

ID の構成

UserIdentityConfiguration

キー タイプ 説明 使用できる値
type 定数 必須です。 ID の型。 user_identity

ManagedIdentityConfiguration

キー タイプ 説明 使用できる値
type 定数 必須です。 ID の型。 managed

解説

az ml job コマンドを使って、Azure Machine Learning Spark ジョブを管理できます。

サンプルの GitHub リポジトリの例を参照してください。 いくつか次に示します。

YAML: アタッチされた Synapse Spark プールとマネージド ID を使うスタンドアロンの Spark ジョブ

# 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: サーバーレス Spark コンピューティングとユーザー ID を使うスタンドアロン Spark ジョブ

次の手順