python - 气流 BashOperator 在 Python 脚本之间传递参数
问题描述
为了在使用 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_a
在这种情况下,我们如何在和之间传递数据task_b
,就像在使用 Xcom 时PythonOperator
使用的那样?
解决方案
{{ ti.xcom_pull(task_ids='task_a') }}
作为参数传递给你的脚本task_b
。记住只有输出的最后一行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)
推荐阅读
- javafx - Gdx.files.local NullPointerException
- spring - Spring数据elasticsearch + arangodb + spring boot
- java - 匹配以'开头的字符串的正则表达式
- angular - 如何更新angular2中按钮单击的数据?
- python - PyTorch:预测单个示例
- ms-access - 新手到 MS ACCESS - 超链接到 PDFS 文件夹?
- typescript - Angular4返回带有嵌套Observables的Observable
- macos - 如何在二进制可执行文件中找到隐藏或未记录的选项/标志?
- c# - 在 JSON 中获取相同值的多条记录
- c# - Attachment 类中 System.Net.Mime.MediaTypeNames 的意义是什么?