注意
本文件中詳述的 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 機器學習 會自動產生版本。 | ||
display_name |
字符串 | 工作室 UI 中元件的顯示名稱。 在工作區內不一定要是唯一名稱。 | ||
description |
字符串 | 元件的描述。 | ||
tags |
物體 | 元件的標記字典。 | ||
code |
字符串 | 必要。 包含元件原始碼和文稿的資料夾位置。 | ||
entry |
物體 | 必要。 元件的進入點。 它可以定義 file。 |
||
entry.file |
字符串 | 包含元件原始碼和文稿的資料夾位置。 | ||
py_files |
物體 | 要放在的.zip、 .egg或 .py 檔案清單PYTHONPATH,以便使用此元件成功執行作業。 |
||
jars |
物體 | 要包含在 Spark 驅動程式和執行程式.jar上的檔案清單CLASSPATH,以便使用此元件成功執行作業。 |
||
files |
物體 | 應複製到每個執行程式工作目錄的檔案清單,以便使用此元件成功執行作業。 | ||
archives |
物體 | 封存清單,應該擷取至每個執行程式的工作目錄,以便使用此元件成功執行作業。 | ||
conf |
物體 | Spark 驅動程式和執行程序屬性。 請參閱金鑰的屬性conf |
||
environment |
字串或物件 | 要用於元件的環境。 此值可以是工作區中現有已建立版本環境的參考,也可以是內嵌環境規格。 若要參考現有的環境,請使用 azureml:<environment_name>:<environment_version> 語法 或 azureml:<environment_name>@latest (參考最新版的環境)。 若要內嵌定義環境,請遵循 環境架構。 name排除和 version 屬性,因為內嵌環境不支持它們。 |
||
args |
字符串 | 應該傳遞至元件進入點 Python 腳本的命令行自變數。 這些自變數可能包含輸入數據的路徑和寫入輸出的位置,例如 "--input_data ${{inputs.<input_name>}} --output_path ${{outputs.<output_name>}}" |
||
inputs |
物體 | 元件輸入的字典。 索引鍵是元件內容中輸入的名稱,而值是輸入值。 您可以使用 args 表示式在 中${{ inputs.<input_name> }}參考輸入。 |
||
inputs.<input_name> |
number、integer、boolean、string 或 object | 其中一個常值(類型為 number、integer、boolean 或 string),或包含 元件輸入數據規格的物件。 | ||
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 執行程式的核心數目。 | |
spark.executor.memory |
字符串 | Spark 執行程式的已設定記憶體,以 GB 為單位,例如 2g。 |
|
spark.dynamicAllocation.enabled |
布爾值 | 執行程式是否應該動態配置為 True 或 False 值。 如果設定 True這個屬性,請定義 spark.dynamicAllocation.minExecutors 和 spark.dynamicAllocation.maxExecutors。 如果這個屬性設定為 False,請定義 spark.executor.instances。 |
False |
spark.dynamicAllocation.minExecutors |
整數 | 動態配置的 Spark 執行程式實例數目下限。 | |
spark.dynamicAllocation.maxExecutors |
整數 | 動態配置的 Spark 執行程式實例數目上限。 | |
spark.executor.instances |
整數 | Spark 執行程序實例的數目。 |
元件輸入
| 機碼 | 類型 | 描述 | 允許的值 | 預設值 |
|---|---|---|---|---|
type |
字符串 | 元件輸入的類型。 指定 uri_file 指向單一檔案來源的輸入數據,或 uri_folder 指定指向資料夾來源的輸入數據。
深入了解數據存取。 |
uri_file、uri_folder |
|
mode |
字符串 | 如何將數據傳遞至計算目標的模式。 模式會 direct 傳入記憶體位置的 URL 做為元件輸入。 您必須完全負責處理記憶體存取認證。 |
direct |
元件輸出
| 機碼 | 類型 | 描述 | 允許的值 | 預設值 |
|---|---|---|---|---|
type |
字符串 | 元件輸出的類型。 |
uri_file、uri_folder |
|
mode |
字符串 | 將輸出檔案傳遞至目的地記憶體資源的模式。 | direct |
備註
az ml component命令可用於管理 Azure 機器學習 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>
