DatabricksStep 类

创建 Azure ML 管道步骤,以将 DataBricks 笔记本、Python 脚本或 JAR 添加为节点。

有关使用 DatabricksStep 的示例,请参阅笔记本 https://aka.ms/pl-databricks

创建 Azure ML Pipeline 步骤,将 DataBricks 笔记本、Python 脚本或 JAR 添加为节点。

有关使用 DatabricksStep 的示例,请参阅笔记本 https://aka.ms/pl-databricks

:p aram python_script_name:[必需] 相对于 source_directory的 Python 脚本的名称。 如果脚本采用输入和输出,则会将输入和输出作为参数传递给脚本。 如果指定了 python_script_name,则也必须指定 source_directory

只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

如果使用 data_reference_name=input1 将 DataReference 对象指定为输入,使用 name=output1 将 PipelineData 对象指定为输出,则输入和输出将作为参数传递给脚本。 这就是它们的外观,你需要分析脚本中的参数以访问每个输入和输出的路径:"-input1","wasbs://test@storagename.blob.core.windows.net/test","-output1", "wasbs://test@storagename.blob.core.windows.net/b3e26de1-87a4-494d-a20f-1988d22b81a2/output1"

此外,在脚本中可以使用以下参数:

  • AZUREML_RUN_TOKEN:用于在 Azure 机器学习中进行身份验证的 AML 令牌。
  • AZUREML_RUN_TOKEN_EXPIRY:AML 令牌过期时间。
  • AZUREML_RUN_ID:此运行的 Azure 机器学习运行 ID。
  • AZUREML_ARM_SUBSCRIPTION:AML 工作区的 Azure 订阅。
  • AZUREML_ARM_RESOURCEGROUP:Azure 机器学习工作区的 Azure 资源组。
  • AZUREML_ARM_WORKSPACE_NAME:Azure 机器学习工作区的名称。
  • AZUREML_ARM_PROJECT_NAME:Azure 机器学习试验的名称。
  • AZUREML_SERVICE_ENDPOINT:AML 服务的终结点 URL。
  • AZUREML_WORKSPACE_ID:Azure 机器学习工作区的 ID。
  • AZUREML_EXPERIMENT_ID:Azure 机器学习试验的 ID。
  • AZUREML_SCRIPT_DIRECTORY_NAME:source_directory 复制到的 DBFS 中的目录路径。
  (This parameter is only populated when `python_script_name` is used.  See more details below.)

使用 DatabricksStep 参数 source_directorypython_script_name 从 Databricks 上你的本地计算机执行 Python 脚本时,source_directory 将复制到 DBFS,DBFS 上的目录路径将在脚本开始执行时作为参数传递给脚本。 此参数标记为 -AZUREML_SCRIPT_DIRECTORY_NAME。 需要在此参数的前面添加字符串前缀“dbfs:/”或“/dbfs/”才能访问 DBFS 中的目录。

继承
azureml.pipeline.core._databricks_step_base._DatabricksStepBase
DatabricksStep

构造函数

DatabricksStep(name, inputs=None, outputs=None, existing_cluster_id=None, spark_version=None, node_type=None, instance_pool_id=None, num_workers=None, min_workers=None, max_workers=None, spark_env_variables=None, spark_conf=None, init_scripts=None, cluster_log_dbfs_path=None, notebook_path=None, notebook_params=None, python_script_path=None, python_script_params=None, main_class_name=None, jar_params=None, python_script_name=None, source_directory=None, hash_paths=None, run_name=None, timeout_seconds=None, runconfig=None, maven_libraries=None, pypi_libraries=None, egg_libraries=None, jar_libraries=None, rcran_libraries=None, compute_target=None, allow_reuse=True, version=None, permit_cluster_restart=None)

参数

名称 说明
name
必需
str

[必需] 步骤的名称。

inputs

此步骤使用的数据的输入连接列表。 使用 dbutils.widgets.get("input_name") 在笔记本内对此进行提取。 可以是 DataReference 或 PipelineData。 DataReference 表示数据存储上的现有数据段。 实质上,这是数据存储上的路径。 DatabricksStep 支持封装 DBFS、Azure Blob 或 ADLS v1 的数据存储。 PipelineData 表示管道中另一个步骤生成的中间数据。

默认值: None
outputs

此步骤生成的输出的输出端口定义列表。 使用 dbutils.widgets.get("output_name") 在笔记本内对此进行提取。 应为 PipelineData。

默认值: None
existing_cluster_id
str

Databricks 工作区上现有交互式群集的群集 ID。 如果要传递此参数,则不能传递用于创建新群集的以下任何参数:

  • spark_version
  • node_type
  • instance_pool_id
  • num_workers
  • min_workers
  • max_workers
  • spark_env_variables
  • spark_conf

注意:若要创建新的作业群集,需要传递上述参数。 可以直接传递这些参数,或者可以使用 runconfig 参数将它们作为 RunConfiguration 对象的一部分传递。 直接和通过 RunConfiguration 传递这些参数传递会导致出错。

默认值: None
spark_version
str

Databricks 运行群集的 spark 版本,例如:“10.4.x-scala2.12”。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
node_type
str

[必需] Databricks 运行群集的 Azure VM 节点类型,例如:“Standard_D3_v2”。 指定 node_typeinstance_pool_id。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
instance_pool_id
str

[必需] 群集需要附加到的实例池 ID。 指定 node_typeinstance_pool_id。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
num_workers
int

[必需] Databricks 运行群集的静态辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
min_workers
int

[必需] 要用于自动缩放 Databricks 运行群集的最小辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
max_workers
int

[必需] 要用于自动缩放 Databricks 运行群集的最大辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
spark_env_variables

Databricks 运行群集的 Spark 环境变量。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
spark_conf

Databricks 运行群集的 Spark 配置。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

默认值: None
init_scripts
[str]

已弃用。 Databricks 宣布 DBFS 中存储的初始化脚本将在 2023 年 12 月 1 日之后停止工作。 若要缓解此问题,请在 2) ) 注释掉 AzureML databricks 步骤中的init_scripts行后 https://learn.microsoft.com/azure/databricks/init-scripts/global ,在 databricks 中使用全局初始化脚本。

默认值: None
cluster_log_dbfs_path
str

要将群集日志传送到的 DBFS 路径。

默认值: None
notebook_path
str

[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。

  1. 若要执行 Databricks 工作区中存在的笔记本,请使用:notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}

  2. 若要执行 DBFS 中存在的 Python 脚本,请使用:python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}

  3. 若要执行 DBFS 中存在的 JAR,请使用:main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]

  4. 若要执行本地计算机上存在的 Python 脚本,请使用:python_script_name=python_script_name, source_directory=source_directory

只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

默认值: None
notebook_params

要传递给笔记本的参数字典。 notebook_params 作为小组件提供。 可以使用 dbutils.widgets.get("myparam") 从笔记本中的这些小组件提取值。

默认值: None
python_script_path
str

[必需] Python 脚本在 DBFS 中的路径。 只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

默认值: None
python_script_params

Python 脚本的参数。

默认值: None
main_class_name
str

[必需] JAR 模块中入口点的名称。 只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

默认值: None
jar_params

JAR 模块的参数。

默认值: None
python_script_name
str

[必需] Python 脚本的名称,相对于 source_directory。 如果脚本采用输入和输出,则会将输入和输出作为参数传递给脚本。 如果指定了 python_script_name,则也必须指定 source_directory

只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

如果使用 data_reference_name=input1 将 DataReference 对象指定为输入,使用 name=output1 将 PipelineData 对象指定为输出,则输入和输出将作为参数传递给脚本。 这就是它们的外观,你需要分析脚本中的参数以访问每个输入和输出的路径:"-input1","wasbs://test@storagename.blob.core.windows.net/test","-output1", "wasbs://test@storagename.blob.core.windows.net/b3e26de1-87a4-494d-a20f-1988d22b81a2/output1"

此外,在脚本中可以使用以下参数:

  • AZUREML_RUN_TOKEN:用于在 Azure 机器学习中进行身份验证的 AML 令牌。
  • AZUREML_RUN_TOKEN_EXPIRY:AML 令牌过期时间。
  • AZUREML_RUN_ID:此运行的 Azure 机器学习运行 ID。
  • AZUREML_ARM_SUBSCRIPTION:AML 工作区的 Azure 订阅。
  • AZUREML_ARM_RESOURCEGROUP:Azure 机器学习工作区的 Azure 资源组。
  • AZUREML_ARM_WORKSPACE_NAME:Azure 机器学习工作区的名称。
  • AZUREML_ARM_PROJECT_NAME:Azure 机器学习试验的名称。
  • AZUREML_SERVICE_ENDPOINT:AML 服务的终结点 URL。
  • AZUREML_WORKSPACE_ID:Azure 机器学习工作区的 ID。
  • AZUREML_EXPERIMENT_ID:Azure 机器学习试验的 ID。
  • AZUREML_SCRIPT_DIRECTORY_NAME:source_directory 复制到的 DBFS 中的目录路径。 (仅当使用 时 python_script_name ,才会填充此参数。请参阅下面的更多详细信息。)

使用 DatabricksStep 参数 source_directorypython_script_name 从 Databricks 上你的本地计算机执行 Python 脚本时,source_directory 将复制到 DBFS,DBFS 上的目录路径将在脚本开始执行时作为参数传递给脚本。 此参数标记为 -AZUREML_SCRIPT_DIRECTORY_NAME。 需要在此参数的前面添加字符串前缀“dbfs:/”或“/dbfs/”才能访问 DBFS 中的目录。

默认值: None
source_directory
str

包含脚本和其他文件的文件夹。 如果指定了 python_script_name,则也必须指定 source_directory

默认值: None
hash_paths
[str]

已弃用:不再需要。

检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory 的内容,.amlignore 或 .gitignore 中列出的文件除外。

默认值: None
run_name
str

此运行在 Databricks 中的名称。

默认值: None
timeout_seconds
int

Databricks 运行的超时。

默认值: None
runconfig

要使用的 runconfig。

注意:可以使用以下参数将任意数量的库作为依赖项传递给作业:maven_librariespypi_librariesegg_librariesjar_librariesrcran_libraries。 请结合对应的参数直接传递这些参数,或者使用 runconfig 参数将这些参数作为 RunConfiguration 对象的一部分传递,但不要同时使用这两种传递方法。

默认值: None
maven_libraries

用于 Databricks 运行的 Maven 库。

默认值: None
pypi_libraries

用于 Databricks 运行的 PyPi 库。

默认值: None
egg_libraries

用于 Databricks 运行的 Egg 库。

默认值: None
jar_libraries

用于 Databricks 运行的 Jar 库。

默认值: None
rcran_libraries

用于 Databricks 运行的 RCran 库。

默认值: None
compute_target

[必需] Azure Databricks 计算。 在使用 DatabricksStep 在 Azure Databricks 工作区上执行脚本或笔记本之前,需要先将 Azure Databricks 工作区作为计算目标添加到 Azure 机器学习工作区。

默认值: None
allow_reuse

指示当使用相同的设置重新运行时,该步骤是否应重用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重用此步骤以前运行的输出。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。 如果使用 Azure 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。

默认值: True
version
str

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

默认值: None
permit_cluster_restart

如果指定了 existing_cluster_id,则此参数将告知是否可以代表用户重新启动群集。

默认值: None
name
必需
str

[必需] 步骤的名称。

inputs
必需

此步骤使用的数据的输入连接列表。 使用 dbutils.widgets.get("input_name") 在笔记本内对此进行提取。 可以是 DataReference 或 PipelineData。 DataReference 表示数据存储上的现有数据段。 实质上,这是数据存储上的路径。 DatabricksStep 支持封装 DBFS、Azure Blob 或 ADLS v1 的数据存储。 PipelineData 表示管道中另一个步骤生成的中间数据。

outputs
必需
list[Union[OutputPortBinding, <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset>, PipelineData]]

此步骤生成的输出的输出端口定义列表。 使用 dbutils.widgets.get("output_name") 在笔记本内对此进行提取。 应为 PipelineData。

existing_cluster_id
必需
str

Databricks 工作区上现有交互式群集的群集 ID。 如果要传递此参数,则不能传递用于创建新群集的以下任何参数:

  • spark_version
  • node_type
  • instance_pool_id
  • num_workers
  • min_workers
  • max_workers
  • spark_env_variables
  • spark_conf

注意:若要创建新的作业群集,需要传递上述参数。 可以直接传递这些参数,或者可以使用 runconfig 参数将它们作为 RunConfiguration 对象的一部分传递。 直接和通过 RunConfiguration 传递这些参数传递会导致出错。

spark_version
必需
str

Databricks 运行群集的 spark 版本,例如:“10.4.x-scala2.12”。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

node_type
必需
str

[必需] Databricks 运行群集的 Azure VM 节点类型,例如:“Standard_D3_v2”。 指定 node_typeinstance_pool_id。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

instance_pool_id
必需
str

[必需] 群集需要附加到的实例池 ID。 指定 node_typeinstance_pool_id。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

num_workers
必需
int

[必需] Databricks 运行群集的静态辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。

有关详细信息,请参阅 existing_cluster_id 参数的说明。

min_workers
必需
int

[必需] 要用于自动缩放 Databricks 运行群集的最小辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。

有关详细信息,请参阅 existing_cluster_id 参数的说明。

max_workers
必需
int

[必需] 要用于自动缩放 Databricks 运行群集的最大辅助角色数。 必须指定 num_workersmin_workersmax_workers 两者。

有关详细信息,请参阅 existing_cluster_id 参数的说明。

spark_env_variables
必需

Databricks 运行群集的 Spark 环境变量。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

spark_conf
必需

Databricks 运行群集的 Spark 配置。 有关详细信息,请参阅 existing_cluster_id 参数的说明。

init_scripts
必需
[str]

已弃用。 Databricks 宣布 DBFS 中存储的初始化脚本将在 2023 年 12 月 1 日之后停止工作。 若要缓解此问题,请在 2) 在 AzureML databricks 步骤中注释掉init_scripts行后 https://learn.microsoft.com/azure/databricks/init-scripts/global ,1) 在 databricks 中使用全局初始化脚本。

cluster_log_dbfs_path
必需
str

要将群集日志传送到的 DBFS 路径。

notebook_path
必需
str

[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。

  1. 若要执行 Databricks 工作区中存在的笔记本,请使用:notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}

  2. 若要执行 DBFS 中存在的 Python 脚本,请使用:python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}

  3. 若要执行 DBFS 中存在的 JAR,请使用:main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]

  4. 若要执行本地计算机上存在的 Python 脚本,请使用:python_script_name=python_script_name, source_directory=source_directory

只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

notebook_params
必需

要传递给笔记本的参数字典。 notebook_params 作为小组件提供。 可以使用 dbutils.widgets.get("myparam") 从笔记本中的这些小组件提取值。

python_script_path
必需
str

[必需] Python 脚本在 DBFS 中的路径。 只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

python_script_params
必需

Python 脚本的参数。

main_class_name
必需
str

[必需] JAR 模块中入口点的名称。 只能指定 notebook_pathpython_script_pathpython_script_namemain_class_name 中的一个。

jar_params
必需

JAR 模块的参数。

source_directory
必需
str

包含脚本和其他文件的文件夹。 如果指定了 python_script_name,则也必须指定 source_directory

hash_paths
必需
[str]

已弃用:不再需要。

检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory 的内容,.amlignore 或 .gitignore 中列出的文件除外。

run_name
必需
str

此运行在 Databricks 中的名称。

timeout_seconds
必需
int

Databricks 运行的超时。

runconfig
必需

要使用的 runconfig。

注意:可以使用以下参数将任意数量的库作为依赖项传递给作业:maven_librariespypi_librariesegg_librariesjar_librariesrcran_libraries。 请结合对应的参数直接传递这些参数,或者使用 runconfig 参数将这些参数作为 RunConfiguration 对象的一部分传递,但不要同时使用这两种传递方法。

maven_libraries
必需
list[<xref:azureml.core.runconfig.MavenLibrary>]

用于 Databricks 运行的 Maven 库。 有关 Maven 库规范的详细信息,请参阅 help(azureml.core.runconfig.MavenLibrary)

pypi_libraries
必需
list[<xref:azureml.core.runconfig.PyPiLibrary>]

用于 Databricks 运行的 PyPi 库。 有关 PyPi 库规范的详细信息,请参阅 help(azureml.core.runconfig.PyPiLibrary)

egg_libraries
必需
list[<xref:azureml.core.runconfig.EggLibrary>]

用于 Databricks 运行的 Egg 库。 有关 Egg 库规范的详细信息,请参阅 help(azureml.core.runconfig.EggLibrary)

jar_libraries
必需
list[<xref:azureml.core.runconfig.JarLibrary>]

用于 Databricks 运行的 Jar 库。 有关 Jar 库规范的详细信息,请参阅 help(azureml.core.runconfig.JarLibrary)

rcran_libraries
必需
list[<xref:azureml.core.runconfig.RCranLibrary>]

用于 Databricks 运行的 RCran 库。 有关 RCran 库规范的详细信息,请参阅 help(azureml.core.runconfig.RCranLibrary)

compute_target
必需

[必需]Azure Databricks 计算。 在使用 DatabricksStep 在 Azure Databricks 工作区上执行脚本或笔记本之前,需要先将 Azure Databricks 工作区作为计算目标添加到 Azure 机器学习工作区。

allow_reuse
必需

指示当使用相同的设置重新运行时,该步骤是否应重用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重用此步骤以前运行的输出。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。 如果使用 Azure 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。

version
必需
str

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

permit_cluster_restart
必需

如果指定了 existing_cluster_id,则此参数将告知是否可以代表用户重新启动群集。

方法

create_node

从 ModuleStep 步骤创建一个节点,并将其添加到指定的图中。

此方法不能直接使用。 通过此步骤实例化管道时,Azure ML 会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。

create_node

从 ModuleStep 步骤创建一个节点,并将其添加到指定的图中。

此方法不能直接使用。 通过此步骤实例化管道时,Azure ML 会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。

create_node(graph, default_datastore, context)

参数

名称 说明
graph
必需

要将节点添加到的图对象。

default_datastore
必需

默认数据存储。

context
必需
<xref:azureml.pipeline.core._GraphContext>

图形上下文。

返回

类型 说明

创建的节点。