本文介绍了Python运算符中的空气流宏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正尝试在我的Python操作符中使用Airflow宏,但我一直收到"Airflow:Error:UnRecognition Arguments:"
所以我正在导入一个有3个位置参数的函数:(sys.argv,start_date,end_date),我希望将start_date和end_date作为Airflow中的执行日期。
函数参数如下所示
def main(argv,start_date,end_date):以下是我在DAG中的任务:
t1 = PythonOperator( task_id='Pull_DCM_Report', provide_context=True, python_callable=main, op_args=[sys.argv,'{{ ds }}','{{ ds }}'], dag=dag) 推荐答案由于您传递的是需要由气流呈现的日期,因此您需要在Python操作符中使用templates_dict参数。此字段是Airflow将唯一识别为包含模板的字段。
您可以通过复制现有运算符并将相关字段添加到template_fields元组中,创建将更多字段识别为模板的自定义Python运算符。
def main(**kwargs): argv = kwargs.get('templates_dict').get('argv') start_date = kwargs.get('templates_dict').get('start_date') end_date = kwargs.get('templates_dict').get('end_date') t1 = PythonOperator(task_id='Pull_DCM_Report', provide_context=True, python_callable=main, templates_dict={'argv': sys.argv, 'start_date': '{{ yesterday_ds }}', 'end_date': '{{ ds }}'}, dag=dag)更多推荐
Python运算符中的空气流宏
发布评论