Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 如何将ds变量传递给dag中的函数?_Airflow_Apache Airflow_Airflow Scheduler - Fatal编程技术网

Airflow 如何将ds变量传递给dag中的函数?

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

我想传递执行日期,它在变量{{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('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并在那个扩展类中执行吗?不需要添加任何东西