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)
参数
名称 | 说明 |
---|---|
file
必需
|
synapse 脚本的名称(相对于 source_directory)。 |
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
必需
|
相对于 |
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)
参数
名称 | 说明 |
---|---|
graph
必需
|
要添加节点的图形对象。 |
default_datastore
必需
|
默认数据存储。 |
context
必需
|
<xref:azureml.pipeline.core._GraphContext>
图形上下文。 |
返回
类型 | 说明 |
---|---|
创建的节点。 |