保存解析 json 文件的输出并将其传递给 Bigqueryinsertjoboperator

Posted

技术标签:

【中文标题】保存解析 json 文件的输出并将其传递给 Bigqueryinsertjoboperator【英文标题】:Saving output from parsing json file and passing it to Bigqueryinsertjoboperator 【发布时间】:2021-08-31 07:09:40 【问题描述】:

我需要一些建议来解决这个审计要求。我正在使用气流作曲家-数据流 java 运算符作业,该作业在作业完成后吐出 json 文件,其中包含状态和错误消息详细信息(进入气流数据文件夹)。我想通过某个运算符从 json 文件中提取状态和错误消息,然后将变量传递给下一个管道作业 Bigqueryinsertjoboperator,它调用存储的 proc 并将状态和错误消息作为输入参数传递,最后写入 BQ 数据集表。

谢谢

【问题讨论】:

【参考方案1】:

你需要做 XCom 和 JINJA 模板。当您从运算符返回元数据时,数据存储在 XCom 中,您可以使用 JINJA 模板或 Python 运算符中的 Python 代码(或自定义运算符中的 Python 代码)检索它。

这是 Marc Lamberti 的两篇非常好的文章(他也有关于 Airlfow 的非常好的课程),描述了如何在 Airflow https://marclamberti.com/blog/templates-macros-apache-airflow/ 中利用模板和 jinja,而这篇描述了 XCom:https://marclamberti.com/blog/airflow-xcom/

通过将两者结合起来,你可以得到你想要的。

【讨论】:

以上是关于保存解析 json 文件的输出并将其传递给 Bigqueryinsertjoboperator的主要内容,如果未能解决你的问题,请参考以下文章

如何在json android中返回多行并将其传递给sqlite

sh 将stdin转换为其他语言并将其保存为输出路径为.json文件

如何提取内部响应值并将其传递给 UserModel

是否可以从describe_instances()输出创建EC2实例?

保存 json 响应并将其解析为 swift 对象

Python - 如何解析 JSON 并将其保存到 MYSQL 数据库