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)
参数
- inputs
- list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData]]
此步骤使用的数据的输入连接列表。 使用 dbutils.widgets.get("input_name") 在笔记本内对此进行提取。 可以是 DataReference 或 PipelineData。 DataReference 表示数据存储上的现有数据段。 实质上,这是数据存储上的路径。 DatabricksStep 支持封装 DBFS、Azure Blob 或 ADLS v1 的数据存储。 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_type
或 instance_pool_id
。
有关详细信息,请参阅 existing_cluster_id
参数的说明。
- instance_pool_id
- str
[必需] 群集需要附加到的实例池 ID。
指定 node_type
或 instance_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
- dict
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 中使用全局初始化脚本。
- notebook_path
- str
[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。
若要执行 Databricks 工作区中存在的笔记本,请使用:notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}
若要执行 DBFS 中存在的 Python 脚本,请使用:python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}
若要执行 DBFS 中存在的 JAR,请使用:main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]
若要执行本地计算机上存在的 Python 脚本,请使用:python_script_name=python_script_name, source_directory=source_directory
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- notebook_params
- dict[str, Union[str, PipelineParameter]]
要传递给笔记本的参数字典。 notebook_params
作为小组件提供。 可以使用 dbutils.widgets.get("myparam") 从笔记本中的这些小组件提取值。
- python_script_path
- str
[必需] Python 脚本在 DBFS 中的路径。
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- main_class_name
- str
[必需] JAR 模块中入口点的名称。
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- python_script_name
- str
[必需] Python 脚本的名称,相对于 source_directory
。
如果脚本采用输入和输出,则会将输入和输出作为参数传递给脚本。
如果指定了 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 中的目录路径。
(仅当使用 时
python_script_name
,才会填充此参数。请参阅下面的更多详细信息。)
使用 DatabricksStep 参数 source_directory
和 python_script_name
从 Databricks 上你的本地计算机执行 Python 脚本时,source_directory 将复制到 DBFS,DBFS 上的目录路径将在脚本开始执行时作为参数传递给脚本。
此参数标记为 -AZUREML_SCRIPT_DIRECTORY_NAME。 需要在此参数的前面添加字符串前缀“dbfs:/”或“/dbfs/”才能访问 DBFS 中的目录。
- hash_paths
- [str]
已弃用:不再需要。
检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory
的内容,.amlignore 或 .gitignore 中列出的文件除外。
- runconfig
- RunConfiguration
要使用的 runconfig。
注意:可以使用以下参数将任意数量的库作为依赖项传递给作业:maven_libraries
、pypi_libraries
、egg_libraries
、jar_libraries
或 rcran_libraries
。 请结合对应的参数直接传递这些参数,或者使用 runconfig
参数将这些参数作为 RunConfiguration 对象的一部分传递,但不要同时使用这两种传递方法。
- compute_target
- str, DatabricksCompute
[必需] Azure Databricks 计算。 在使用 DatabricksStep 在 Azure Databricks 工作区上执行脚本或笔记本之前,需要先将 Azure Databricks 工作区作为计算目标添加到 Azure 机器学习工作区。
- allow_reuse
- bool
指示当使用相同的设置重新运行时,该步骤是否应重用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重用此步骤以前运行的输出。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。 如果使用 Azure 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。
- inputs
- list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData]]
此步骤使用的数据的输入连接列表。 使用 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_type
或 instance_pool_id
。
有关详细信息,请参阅 existing_cluster_id
参数的说明。
- instance_pool_id
- str
[必需] 群集需要附加到的实例池 ID。
指定 node_type
或 instance_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
参数的说明。
- init_scripts
- [str]
已弃用。 Databricks 宣布 DBFS 中存储的初始化脚本将在 2023 年 12 月 1 日之后停止工作。 若要缓解此问题,请在 2) 在 AzureML databricks 步骤中注释掉init_scripts行后 https://learn.microsoft.com/azure/databricks/init-scripts/global ,1) 在 databricks 中使用全局初始化脚本。
- notebook_path
- str
[必需] 笔记本在 Databricks 实例中的路径。 使用此类可以通过四种方式指定要在 Databricks 群集上执行的代码。
若要执行 Databricks 工作区中存在的笔记本,请使用:notebook_path=notebook_path, notebook_params={'myparam': 'testparam'}
若要执行 DBFS 中存在的 Python 脚本,请使用:python_script_path=python_script_dbfs_path, python_script_params={'arg1', 'arg2'}
若要执行 DBFS 中存在的 JAR,请使用:main_class_name=main_jar_class_name, jar_params={'arg1', 'arg2'}, jar_libraries=[JarLibrary(jar_library_dbfs_path)]
若要执行本地计算机上存在的 Python 脚本,请使用:python_script_name=python_script_name, source_directory=source_directory
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- notebook_params
- dict[str, (str 或 PipelineParameter)]
要传递给笔记本的参数字典。 notebook_params
作为小组件提供。 可以使用 dbutils.widgets.get("myparam") 从笔记本中的这些小组件提取值。
- python_script_path
- str
[必需] Python 脚本在 DBFS 中的路径。
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- main_class_name
- str
[必需] JAR 模块中入口点的名称。
只能指定 notebook_path
、python_script_path
、python_script_name
和 main_class_name
中的一个。
- hash_paths
- [str]
已弃用:不再需要。
检查对步骤内容所做的更改时要哈希处理的路径列表。 如果未检测到更改,则管道将重用前一运行中的步骤内容。 默认情况下,将哈希处理 source_directory
的内容,.amlignore 或 .gitignore 中列出的文件除外。
- runconfig
- RunConfiguration
要使用的 runconfig。
注意:可以使用以下参数将任意数量的库作为依赖项传递给作业:maven_libraries
、pypi_libraries
、egg_libraries
、jar_libraries
或 rcran_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
- str, DatabricksCompute
[必需]Azure Databricks 计算。 在使用 DatabricksStep 在 Azure Databricks 工作区上执行脚本或笔记本之前,需要先将 Azure Databricks 工作区作为计算目标添加到 Azure 机器学习工作区。
- allow_reuse
- bool
指示当使用相同的设置重新运行时,该步骤是否应重用以前的结果。 默认情况下启用重用。 如果步骤内容(脚本/依赖项)以及输入和参数保持不变,则重用此步骤以前运行的输出。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。 如果使用 Azure 机器学习数据集作为输入,则重用取决于数据集的定义是否已更改,而不是基础数据是否已更改。
方法
create_node |
从 ModuleStep 步骤创建一个节点,并将其添加到指定的图中。 此方法不能直接使用。 通过此步骤实例化管道时,Azure ML 会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。 |
create_node
从 ModuleStep 步骤创建一个节点,并将其添加到指定的图中。
此方法不能直接使用。 通过此步骤实例化管道时,Azure ML 会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。
create_node(graph, default_datastore, context)
参数
- context
- <xref:azureml.pipeline.core._GraphContext>
图形上下文。
返回
创建的节点。
返回类型
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈