AirFlow DatabricksSubmitRunOperator 不接受笔记本参数

Sau*_*jee 6 airflow databricks azure-databricks

我正在尝试从 Airflow 触发笔记本。笔记本具有定义为小部件的参数,我试图通过 notebook_params 参数将值传递给它,尽管它会触发,但当我查看提交的作业时,参数似乎没有传递。

例如代码

new_cluster = {'spark_version': '6.5.x-cpu-ml-scala2.11',
                        'node_type_id': 'Standard_DS3_v2',
                        'num_workers': 4
                        }

notebook_task = DatabricksSubmitRunOperator(task_id='notebook_task',
             json={'new_cluster': new_cluster,
                                'notebook_task': {
                                    'notebook_path': '/Users/abc@test.com/Demo',
                                    'notebook_parameters':'{"fromdate":"20200420","todate":"20200420", "datalakename":"exampledatalake", "dbname": "default", "filesystem":"refined" , "tablename":"ntcsegmentprediction", "modeloutputpath":"curated"}'
                                },
                            })

Run Code Online (Sandbox Code Playgroud)

但是,DatabricksRunNowOperator 支持它,并且它可以工作

notebook_run = DatabricksRunNowOperator(task_id='notebook_task',
            job_id=24,
            notebook_params={"fromdate":"20200420","todate":"20200420", "datalakename":"exampledatalake", "dbname": "default", "filesystem":"refined" , "tablename":"ntcsegmentprediction", "modeloutputpath":"curated"}
        )

Run Code Online (Sandbox Code Playgroud)

在 DatabricksSubmitRunOperator 的文档和源代码

它说它可以接受一个notebook_task。如果可以,不知道为什么它不能接受参数

我缺少什么?

如果需要更多信息,我也可以提供。

小智 4

你应该使用base_parameters而不是notebook_params

https://docs.databricks.com/dev-tools/api/latest/jobs.html#jobsnotebooktask