SynapseSparkStep 类

注意

这是一个试验性的类,随时可能更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

创建用于提交和执行 Python 脚本的 Azure ML Synapse 步骤。

创建在 synapse spark 池上运行 Spark 作业的 Azure ML 管道步骤。

继承
azureml.pipeline.core._synapse_spark_step_base._SynapseSparkStepBase
SynapseSparkStep

构造函数

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
必需
str

synapse 脚本的名称(相对于 source_directory)。

source_directory
必需
str

包含 Python 脚本、conda env 和步骤中使用的其他资源的文件夹。

compute_target
必需

要使用的计算目标。

driver_memory
必需
str

用于驱动程序进程的内存量。

driver_cores
必需
int

用于驱动程序进程的内核数。

executor_memory
必需
str

每个执行程序进程要使用的内存量。

executor_cores
必需
int

每个执行程序使用的内核数。

num_executors
必需
int

为此会话启动的执行程序数。

name
必需
str

步骤的名称。 如果未指定,则使用 file

app_name
必需
str

用于提交 Spark 作业的应用名称。

environment
必需

后续版本将支持 AML 环境。

arguments
必需

Synapse 脚本文件的命令行参数。

inputs
必需

输入列表。

outputs
必需

输出列表。

conf
必需

Spark 配置属性。

py_files
必需

要在此会话中使用的 Python 文件,livy API 的参数。

files
必需

本次会话中使用的文件,livy API 的参数。

allow_reuse
必需

指示在使用相同设置重新运行时该步骤是否应重用以前的结果。

version
必需
str

一个可选的版本标签,用于表示该步骤的功能更改。

file
必需
str

相对于 source_directory的 Synapse 脚本的名称。

source_directory
必需
str

包含 Python 脚本、conda env 和步骤中使用的其他资源的文件夹。

compute_target
必需

要使用的计算目标。

driver_memory
必需
str

用于驱动程序进程的内存量。

driver_cores
必需
int

用于驱动程序进程的内核数。

executor_memory
必需
str

每个执行程序进程要使用的内存量。

executor_cores
必需
int

每个执行程序使用的内核数。

num_executors
必需
int

为此会话启动的执行程序数。

name
必需
str

步骤的名称。 如果未指定,则使用 file

app_name
必需
str

用于提交 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
必需
str

一个可选的版本标签,用于表示该步骤的功能更改。

注解

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>

图形上下文。

返回

类型 说明

创建的节点。