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_path
、python_script_path
、python_script_name
和 main_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_directory
和 python_script_name
从 Databricks 上你的本地计算机执行 Python 脚本时,source_directory 将复制到 DBFS,DBFS 上的目录路径将在脚本开始执行时作为参数传递给脚本。
此参数标记为 -AZUREML_SCRIPT_DIRECTORY_NAME。 需要在此参数的前面添加字符串前缀“dbfs:/”或“/dbfs/”才能访问 DBFS 中的目录。
- 继承
-
azureml.pipeline.core._databricks_step_base._DatabricksStepBaseDatabricksStep
构造函数
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
必需
|
[必需] 步骤的名称。 |
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
|
Databricks 工作区上现有交互式群集的群集 ID。 如果要传递此参数,则不能传递用于创建新群集的以下任何参数:
注意:若要创建新的作业群集,需要传递上述参数。 可以直接传递这些参数,或者可以使用 runconfig 参数将它们作为 RunConfiguration 对象的一部分传递。 直接和通过 RunConfiguration 传递这些参数传递会导致出错。 默认值: None
|
spark_version
|
Databricks 运行群集的 spark 版本,例如:“10.4.x-scala2.12”。
有关详细信息,请参阅 默认值: None
|
node_type
|
[必需] Databricks 运行群集的 Azure VM 节点类型,例如:“Standard_D3_v2”。 指定 默认值: None
|
instance_pool_id
|
[必需] 群集需要附加到的实例池 ID。
指定 默认值: None
|
num_workers
|
[必需] Databricks 运行群集的静态辅助角色数。
必须指定 默认值: None
|
min_workers
|
[必需] 要用于自动缩放 Databricks 运行群集的最小辅助角色数。
必须指定 默认值: None
|
max_workers
|
[必需] 要用于自动缩放 Databricks 运行群集的最大辅助角色数。
必须指定 默认值: None
|
spark_env_variables
|
Databricks 运行群集的 Spark 环境变量。
有关详细信息,请参阅 默认值: None
|
spark_conf
|
Databricks 运行群集的 Spark 配置。
有关详细信息,请参阅 默认值: None
|
init_scripts
|
[str]
已弃用。 Databricks 宣布 DBFS 中存储的初始化脚本将在 2023 年 12 月 1 日之后停止工作。 若要缓解此问题,请在 2) 在 AzureML databricks 步骤中注释掉init_scripts行后 https://learn.microsoft.com/azure/databricks/init-scripts/global ,1) 在 databricks 中使用全局初始化脚本。 默认值: None
|
cluster_log_dbfs_path
|
要将群集日志传送到的 DBFS 路径。 默认值: None
|
notebook_path
|
[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。
只能指定 默认值: None
|
notebook_params
|
要传递给笔记本的参数字典。
默认值: None
|
python_script_path
|
[必需] Python 脚本在 DBFS 中的路径。
只能指定 默认值: None
|
python_script_params
|
Python 脚本的参数。 默认值: None
|
main_class_name
|
[必需] JAR 模块中入口点的名称。
只能指定 默认值: None
|
jar_params
|
JAR 模块的参数。 默认值: None
|
python_script_name
|
[必需] Python 脚本的名称,相对于 只能指定 如果使用 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" 此外,在脚本中可以使用以下参数:
使用 DatabricksStep 参数 默认值: None
|
source_directory
|
包含脚本和其他文件的文件夹。
如果指定了 默认值: None
|
hash_paths
|
[str]
已弃用:不再需要。 检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 默认值: None
|
run_name
|
此运行在 Databricks 中的名称。 默认值: None
|
timeout_seconds
|
Databricks 运行的超时。 默认值: None
|
runconfig
|
要使用的 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
|
一个可选的版本标记,用于表示该步骤的功能更改。 默认值: None
|
permit_cluster_restart
|
如果指定了 existing_cluster_id,则此参数将告知是否可以代表用户重新启动群集。 默认值: None
|
name
必需
|
[必需] 步骤的名称。 |
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
必需
|
Databricks 工作区上现有交互式群集的群集 ID。 如果要传递此参数,则不能传递用于创建新群集的以下任何参数:
注意:若要创建新的作业群集,需要传递上述参数。 可以直接传递这些参数,或者可以使用 runconfig 参数将它们作为 RunConfiguration 对象的一部分传递。 直接和通过 RunConfiguration 传递这些参数传递会导致出错。 |
spark_version
必需
|
Databricks 运行群集的 spark 版本,例如:“10.4.x-scala2.12”。
有关详细信息,请参阅 |
node_type
必需
|
[必需] Databricks 运行群集的 Azure VM 节点类型,例如:“Standard_D3_v2”。 指定 |
instance_pool_id
必需
|
[必需] 群集需要附加到的实例池 ID。
指定 |
num_workers
必需
|
[必需] Databricks 运行群集的静态辅助角色数。
必须指定 有关详细信息,请参阅 |
min_workers
必需
|
[必需] 要用于自动缩放 Databricks 运行群集的最小辅助角色数。
必须指定 有关详细信息,请参阅 |
max_workers
必需
|
[必需] 要用于自动缩放 Databricks 运行群集的最大辅助角色数。
必须指定 有关详细信息,请参阅 |
spark_env_variables
必需
|
Databricks 运行群集的 Spark 环境变量。
有关详细信息,请参阅 |
spark_conf
必需
|
Databricks 运行群集的 Spark 配置。
有关详细信息,请参阅 |
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
必需
|
要将群集日志传送到的 DBFS 路径。 |
notebook_path
必需
|
[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。
只能指定 |
notebook_params
必需
|
要传递给笔记本的参数字典。
|
python_script_path
必需
|
[必需] Python 脚本在 DBFS 中的路径。
只能指定 |
python_script_params
必需
|
Python 脚本的参数。 |
main_class_name
必需
|
[必需] JAR 模块中入口点的名称。
只能指定 |
jar_params
必需
|
JAR 模块的参数。 |
source_directory
必需
|
包含脚本和其他文件的文件夹。
如果指定了 |
hash_paths
必需
|
[str]
已弃用:不再需要。 检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 |
run_name
必需
|
此运行在 Databricks 中的名称。 |
timeout_seconds
必需
|
Databricks 运行的超时。 |
runconfig
必需
|
要使用的 runconfig。 注意:可以使用以下参数将任意数量的库作为依赖项传递给作业: |
maven_libraries
必需
|
list[<xref:azureml.core.runconfig.MavenLibrary>]
用于 Databricks 运行的 Maven 库。
有关 Maven 库规范的详细信息,请参阅 |
pypi_libraries
必需
|
list[<xref:azureml.core.runconfig.PyPiLibrary>]
用于 Databricks 运行的 PyPi 库。
有关 PyPi 库规范的详细信息,请参阅 |
egg_libraries
必需
|
list[<xref:azureml.core.runconfig.EggLibrary>]
用于 Databricks 运行的 Egg 库。
有关 Egg 库规范的详细信息,请参阅 |
jar_libraries
必需
|
list[<xref:azureml.core.runconfig.JarLibrary>]
用于 Databricks 运行的 Jar 库。
有关 Jar 库规范的详细信息,请参阅 |
rcran_libraries
必需
|
list[<xref:azureml.core.runconfig.RCranLibrary>]
用于 Databricks 运行的 RCran 库。
有关 RCran 库规范的详细信息,请参阅 |
compute_target
必需
|
[必需]Azure Databricks 计算。 在使用 DatabricksStep 在 Azure Databricks 工作区上执行脚本或笔记本之前,需要先将 Azure Databricks 工作区作为计算目标添加到 Azure 机器学习工作区。 |
allow_reuse
必需
|
指示当使用相同的设置重新运行时,该步骤是否应重用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重用此步骤以前运行的输出。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。 如果使用 Azure 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。 |
version
必需
|
一个可选的版本标记,用于表示该步骤的功能更改。 |
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>
图形上下文。 |
返回
类型 | 说明 |
---|---|
创建的节点。 |