Airflow 如何将ds变量传递给dag中的函数?
我想传递执行日期,它在变量{{ds}中。但是,我通过一个函数传递了它,它没有得到执行日期Airflow 如何将ds变量传递给dag中的函数?,airflow,apache-airflow,airflow-scheduler,Airflow,Apache Airflow,Airflow Scheduler,我想传递执行日期,它在变量{{ds}中。但是,我通过一个函数传递了它,它没有得到执行日期 def get_spark_step_2(date): #logic in here return step exec_date = '{{ ds }}' step_adder2 = EmrAddStepsOperator( task_id='create_parquets', job_flow_id="{{ task_instance.xcom_pull('cr
def get_spark_step_2(date):
#logic in here
return step
exec_date = '{{ ds }}'
step_adder2 = EmrAddStepsOperator(
task_id='create_parquets',
job_flow_id="{{ task_instance.xcom_pull('create_job_flow', key='return_value') }}",
aws_conn_id='aws_default',
steps=get_spark_step_2(exec_date),
dag=dag
)
您知道如何在上面的上下文中使用该变量吗?创建一个扩展EmraddSepsOperator的类,并使
步骤成为模板化字段
大概是这样的:
MyEmrAddStepsOperator类(EmrAddStepsOperator):
模板_字段=['job_flow_id','steps']
EmrAddStepsOperator
本身只有job\u flow\u id
作为模板字段:
类EmrAddStepsOperator(BaseOperator):
"""
向现有EMR作业流添加步骤的运算符。
:param job_flow_id:要添加步骤的作业流的id
:键入作业\流程\名称:str
:param aws_conn_id:aws与用户的连接
:类型aws\U conn\U id:str
:param steps:要添加到作业流的boto3样式步骤
:键入步骤:列表
"""
模板\u字段=['job\u flow\u id']
您只能在模板化的字段中使用宏(如ds
)。谢谢!对于这个愚蠢的问题,我很抱歉,只有那个小的变化,我需要定义init并在那个扩展类中执行吗?不需要添加任何东西