SynapseSparkStep 類別
注意
這是實驗性類別,可以隨時變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
建立提交和執行 Python 腳本的 Azure ML Synapse 步驟。
建立在 synapse Spark 集區上執行 Spark 作業的 Azure ML 管線步驟。
- 繼承
-
azureml.pipeline.core._synapse_spark_step_base._SynapseSparkStepBaseSynapseSparkStep
建構函式
SynapseSparkStep(file, source_directory, compute_target, driver_memory, driver_cores, executor_memory, executor_cores, num_executors, name=None, app_name=None, environment=None, arguments=None, inputs=None, outputs=None, conf=None, py_files=None, jars=None, files=None, allow_reuse=True, version=None)
參數
名稱 | Description |
---|---|
file
必要
|
與source_directory相對的 synapse 腳本名稱。 |
source_directory
必要
|
資料夾,其中包含步驟中使用的 Python 腳本、conda env 和其他資源。 |
compute_target
必要
|
要使用的計算目標。 |
driver_memory
必要
|
用於驅動程式進程的記憶體數量。 |
driver_cores
必要
|
要用於驅動程式進程的核心數目。 |
executor_memory
必要
|
每個執行程式進程要使用的記憶體數量。 |
executor_cores
必要
|
每個執行程式要使用的核心數目。 |
num_executors
必要
|
要為此會話啟動的執行程式數目。 |
name
必要
|
步驟的名稱。 如果未指定, |
app_name
必要
|
用來提交 Spark 作業的應用程式名稱。 |
environment
必要
|
稍後版本將支援 AML 環境。 |
arguments
必要
|
Synapse 腳本檔案的命令列引數。 |
inputs
必要
|
輸入的清單。 |
outputs
必要
|
輸出清單。 |
conf
必要
|
Spark 組態屬性。 |
py_files
必要
|
要在此會話中使用的 Python 檔案,livy API 的參數。 |
files
必要
|
要在此會話中使用的檔案,livy API 的參數。 |
allow_reuse
必要
|
指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 |
version
必要
|
選擇性版本戳記,表示步驟的功能變更。 |
file
必要
|
相對於 的 Synapse 腳本 |
source_directory
必要
|
資料夾,其中包含步驟中使用的 Python 腳本、conda env 和其他資源。 |
compute_target
必要
|
要使用的計算目標。 |
driver_memory
必要
|
用於驅動程式進程的記憶體數量。 |
driver_cores
必要
|
要用於驅動程式進程的核心數目。 |
executor_memory
必要
|
每個執行程式進程要使用的記憶體數量。 |
executor_cores
必要
|
每個執行程式要使用的核心數目。 |
num_executors
必要
|
要為此會話啟動的執行程式數目。 |
name
必要
|
步驟的名稱。 如果未指定, |
app_name
必要
|
用來提交 Apache Spark 作業的應用程式名稱。 |
environment
必要
|
將在此 SynapseSparkStep 中運用的 AML 環境。 |
arguments
必要
|
Synapse 腳本檔案的命令列引數。 |
inputs
必要
|
輸入的清單。 |
outputs
必要
|
輸出清單。 |
conf
必要
|
Spark 組態屬性。 |
py_files
必要
|
要在此會話中使用的 Python 檔案,livy API 的參數。 |
jars
必要
|
要用於此會話的 Jar 檔案,livy API 的參數。 |
files
必要
|
要在此會話中使用的檔案,livy API 的參數。 |
allow_reuse
必要
|
指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 |
version
必要
|
選擇性版本戳記,表示步驟的功能變更。 |
備註
SynapseSparkStep 是在 Synapse Spark 集區上執行 Python Spark 作業的基本內建步驟。 它會採用主要檔案名和其他選擇性參數,例如腳本、計算目標、輸入和輸出的引數。
使用 SynapseSparkStep 的最佳做法是針對腳本和與步驟相關聯的任何相依檔案使用不同的資料夾,並使用 參數指定該資料夾 source_directory
。
遵循此最佳做法有兩個優點。 首先,它有助於減少為步驟建立的快照集大小,因為只會快照步驟所需的快照集。 第二,如果沒有任何變更會觸發重新上傳快照集的 , source_directory
則可以重複使用上一次執行的步驟輸出。
from azureml.core import Dataset
from azureml.pipeline.steps import SynapseSparkStep
from azureml.data import HDFSOutputDatasetConfig
# get input dataset
input_ds = Dataset.get_by_name(workspace, "weather_ds").as_named_input("weather_ds")
# register pipeline output as dataset
output_ds = HDFSOutputDatasetConfig("synapse_step_output",
destination=(ws.datastores['datastore'],"dir")
).register_on_complete(name="registered_dataset")
step_1 = SynapseSparkStep(
name = "synapse_step",
file = "pyspark_job.py",
source_directory="./script",
inputs=[input_ds],
outputs=[output_ds],
compute_target = "synapse",
driver_memory = "7g",
driver_cores = 4,
executor_memory = "7g",
executor_cores = 2,
num_executors = 1,
conf = {})
SynapseSparkStep 僅支援 DatasetConsumptionConfig 作為輸入,而 HDFSOutputDatasetConfig 做為輸出。
方法
create_node |
建立 Synapse 腳本步驟的節點。 這個方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動傳遞透過此方法所需的參數,以便將步驟新增至代表工作流程的管線圖形。 |
create_node
建立 Synapse 腳本步驟的節點。
這個方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動傳遞透過此方法所需的參數,以便將步驟新增至代表工作流程的管線圖形。
create_node(graph, default_datastore, context)
參數
名稱 | Description |
---|---|
graph
必要
|
要加入節點的繪圖物件。 |
default_datastore
必要
|
預設資料存放區。 |
context
必要
|
<xref:azureml.pipeline.core._GraphContext>
圖形內容。 |
傳回
類型 | Description |
---|---|
已建立的節點。 |