DatabricksStep 类

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

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

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

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

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

指定确切的一个notebook_pathpython_script_pathpython_script_namemain_class_name

如果将 DataReference 对象指定为 具有 data_reference_name=input1 的输入,并将 PipelineData 对象指定为 name=output1 的输出,则将输入和输出作为参数传递给脚本。 这就是它们的外观,你需要分析脚本中的参数以访问每个输入和输出的路径:“-input1”、“wasbs:///test”,“-output1”、“wasbs://test@storagename.blob.core.windows.nettest@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 中的目录。

构造函数

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_workers 同时 min_workers 指定和 /或 max_workers/ 。 有关详细信息,请参阅参数的说明 existing_cluster_id

默认值: None
min_workers
int

[必需]用于自动缩放 Databricks 运行群集的辅助角色数最小。 必须指定或 num_workers 同时 min_workers 指定和 /或 max_workers/ 。 有关详细信息,请参阅参数的说明 existing_cluster_id

默认值: None
max_workers
int

[必需]用于自动缩放 Databricks 运行群集的辅助角色数上限。 必须指定或 num_workers 同时 min_workers 指定和 /或 max_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 日后停止工作。 若要缓解此问题,请 1) 在 databricks 中使用全局初始化脚本,以下 https://learn.microsoft.com/azure/databricks/init-scripts/global 2) 注释掉了 AzureML databricks 步骤中的init_scripts行。

默认值: 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

[必需]DBFS 中 Python 脚本的路径。 指定确切的一个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

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

指定确切的一个notebook_pathpython_script_pathpython_script_namemain_class_name

如果将 DataReference 对象指定为 具有 data_reference_name=input1 的输入,并将 PipelineData 对象指定为 name=output1 的输出,则将输入和输出作为参数传递给脚本。 这就是它们的外观,你需要分析脚本中的参数以访问每个输入和输出的路径:“-input1”、“wasbs:///test”,“-output1”、“wasbs://test@storagename.blob.core.windows.nettest@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]

已弃用:不再需要。

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

默认值: None
run_name
str

此运行在 Databricks 中的名称。

默认值: None
timeout_seconds
int

Databricks 运行的超时。

默认值: None
runconfig

要使用的 runconfig。

注意:可以使用以下参数将任意数量的库作为依赖项传递到作业:maven_libraries、、pypi_librariesegg_librariesjar_librariesrcran_libraries。 使用相应的参数直接传递这些参数,或者作为 RunConfiguration 对象的一部分使用参数传递,但不能同时传递 runconfig 这两个参数。

默认值: 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_workers 同时 min_workers 指定和 /或 max_workers/ 。

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

min_workers
必需
int

[必需]用于自动缩放 Databricks 运行群集的辅助角色数最小。 必须指定或 num_workers 同时 min_workers 指定和 /或 max_workers/ 。

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

max_workers
必需
int

[必需]用于自动缩放 Databricks 运行群集的辅助角色数上限。 必须指定或 num_workers 同时 min_workers 指定和 /或 max_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 日后停止工作。 若要缓解此问题,请 1) 在 databricks 中使用全局初始化脚本,以下 https://learn.microsoft.com/azure/databricks/init-scripts/global 2) 注释掉了 AzureML databricks 步骤中的init_scripts行。

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

[必需]DBFS 中 Python 脚本的路径。 指定确切的一个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]

已弃用:不再需要。

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

run_name
必需
str

此运行在 Databricks 中的名称。

timeout_seconds
必需
int

Databricks 运行的超时。

runconfig
必需

要使用的 runconfig。

注意:可以使用以下参数将任意数量的库作为依赖项传递到作业:maven_libraries、、pypi_librariesegg_librariesjar_librariesrcran_libraries。 使用相应的参数直接传递这些参数,或者作为 RunConfiguration 对象的一部分使用参数传递,但不能同时传递 runconfig 这两个参数。

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

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

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

create_node

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

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

create_node(graph, default_datastore, context)

参数

名称 说明
graph
必需

要向其添加节点的图形对象。

default_datastore
必需

默认数据存储。

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

图形上下文。

返回

类型 说明

创建的节点。