繁体   English   中英

Airflow BashOperator 通过 Python 脚本之间的 Arguments

[英]Airflow BashOperator Pass Arguments between Python Scripts

为了在使用 Apache Airflow 调度时在 virtualenv 中运行 Python 脚本,使用了BashOperator

例如,

task_a = BashOperator(
    task_id='task_a',
    bash_command='/path/to/virtualenv/bin/python /path/to/script_a.py'),
    dag=dag)

task_b = BashOperator(
    task_id='task_b',
    bash_command='/path/to/virtualenv/bin/python /path/to/script_b.py'),
    dag=dag)

在这种情况下,我们如何在task_atask_b之间传递数据,就像在使用PythonOperator时使用 Xcom 时一样?

{{ ti.xcom_pull(task_ids='task_a') }}作为参数传递给task_b中的脚本。 请记住,只有 BashOperator 的BashOperator的最后一行被推送到 Xcom。

task_a = BashOperator(
    task_id='task_a',
    bash_command='/path/to/virtualenv/bin/python /path/to/script_a.py'),
    dag=dag)

task_b = BashOperator(
    task_id='task_b',
    bash_command="/path/to/virtualenv/bin/python /path/to/script_b.py {{ ti.xcom_pull(task_ids='task_a') }}"),
    dag=dag)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM