保存解析 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文件