【问题标题】:How can we check the output of BashOperator in Airflow?我们如何在 Airflow 中检查 BashOperator 的输出?
【发布时间】:2020-07-23 11:20:10
【问题描述】:

我对 Airflow 很陌生,我想知道如果我执行一个 bash 运算符,我们如何获得该运算符的控制台输出?我想知道设置xcom_push = true 能解决问题吗? 我很高兴有人能回答这个问题:)

【问题讨论】:

    标签: airflow-scheduler airflow


    【解决方案1】:

    如果xcom_pushTrue,那么当bash 命令完成时,只有写入stdout 的最后一行 也会被推送到XCom。

    相关源码:https://github.com/apache/airflow/blob/1.10.11/airflow/operators/bash_operator.py#L167-L168

    【讨论】:

      【解决方案2】:

      添加到@kaxil 的答案(因为我没有足够的声誉来评论他的答案):

      如果您的bash_command 返回多行您希望包含在 xcom 中的内容,则添加此项以在一行中返回所有内容:

      bash_command="<COMMAND> | tr '\n' '||'",
      

      【讨论】:

        【解决方案3】:

        对于使用 Airflow 2+ 的用户,BashOperator 现在返回整个输出 (source),而不仅仅是最后一行,并且不需要指定 do_xcom_push(2+ 中的新名称而不是 xcom_push),因为它默认为真。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-28
          • 1970-01-01
          • 2017-06-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-31
          相关资源
          最近更新 更多