请容忍我,因为我刚刚开始使用airlow,我要做的是收集bashcomperator任务的返回代码并将其保存到一个局部变量中,然后基于该返回代码分支到另一个任务。我的问题是如何让bash操作符返回一些内容。以下是我的代码段:
dag = DAG(dag_id='dag_1',
default_args=default_args,
schedule_interval='0 2 * * *',
user_defined_macros=user_def_macros,
dagrun_timeout=timedelta(minutes=60)
)
oodas = BashOperator(task_id='oodas', xcom_push=True, bash_command="hive -hiveconf SCHEMA={{ schema }} -hiveconf DAY={{ yesterday_ds }} -f {{ script_path }}", dag=dag)
t2 = BashOperator(task_id='t2', bash_command='echo "{{ ti.xcom_pull("oodas") }}"', dag=dag)
t2.set_upstream(oodas)
我正在尝试xcom_的推送,但老实说,我不知道它是如何工作的。。这是收集结果的正确方法吗?在日志中,最后一行是:命令退出,返回代码为0。
根据BashOperator doc
知道了这一点,您只需要让bash脚本最后打印错误代码,所以将以下内容附加到您的
bash_command
:就你而言,它是:
你能把所有的资料都寄出去吗。我认为你在解释气流是如何工作的方面有问题
从Task1(如果它是bash操作符)可以执行以下操作:
在任务2中:
其中ti是task\u实例变量,而{{}符号用于访问Variables部分
相关问题 更多 >
编程相关推荐