如何在 DatabricksStep 中使用 PipelineParameter (Python)

How to use PipelineParameter in DatabricksStep (Python)

我创建了一个带有单个 DatabricksStep 的 AML 管道。当我 运行 已发布的管道时,我需要将一个参数传递给 Databricks notebook。

当我 运行 发布管道时,Databricks 步骤始终采用 PipelineParameter 的默认值,无论我在提交管道时选择什么值。

这里是代码:

start_date_param = PipelineParameter(name="StartDate", default_value='2022-01-19')

# Define data ingestion step
data_loading_step = DatabricksStep(
        name="Data Loading",
        existing_cluster_id=db_cluster_id,
        notebook_path=data_loading_path,
        run_name="Loading raw data",
        notebook_params={
            'StartDate': start_date_param,
        },
        compute_target=dbricks_compute,
        instance_pool_id=instance_pool_id,
        num_workers=num_workers,
        allow_reuse=False
    )

这是 Databricks 笔记本:

dbutils.widgets.text("StartDate", "", "StartDate(YYYY-MM-DD)")

StartDate 的默认值为 2022-01-19.Even 尽管我将 StartDate 参数设置为“2021-01-19”,但 Databricks notebook 仍将 2022-01-19 作为 StartDate。

我做错了什么?

感谢您的帮助,

G

我找到了问题的解决方案。我希望它能对某人有所帮助。 如果您将所有参数名称和小部件名称设置为小写,它会起作用。

start_date_param = PipelineParameter(name="start_date", default_value='2022-01-19')

# Define data ingestion step
data_loading_step = DatabricksStep(
        name="Data Loading",
        existing_cluster_id=db_cluster_id,
        notebook_path=data_loading_path,
        run_name="Loading raw data",
        notebook_params={
            'start_date': start_date_param,
        },
        compute_target=dbricks_compute,
        instance_pool_id=instance_pool_id,
        num_workers=num_workers,
        allow_reuse=False
    )
dbutils.widgets.text("start_date", "", "start_date(YYYY-MM-DD)")