如何将 JSON 文件上传到 BigQuery
Posted
技术标签:
【中文标题】如何将 JSON 文件上传到 BigQuery【英文标题】:How to upload the JSON file to BigQuery 【发布时间】:2021-04-07 22:18:26 【问题描述】:我正在尝试使用以下数据将 JSON 文件上传到 BigQuery: enter image description here ,我首先使用下面的代码将 JSON 文件覆盖为新行分隔的 JSON:
cat healthrecord.json | jq -c '.[]' > healthrecordNDJSON.json
在代码之后,新的分隔 JSON 文件如下所示: enter image description here 但是,当我想将 NDJSON 文件上传到 BigQuery 时,出现此错误:
读取数据时出错,错误消息:无法解析 JSON:未找到活动字段。; ParsedString 返回错误
下面是我的 JSON 文件:
https://drive.google.com/file/d/1-H3fclfhSvtYS8f51hsnUyPEA1yPmwkr/view?usp=sharing
这里是 NDJSON 文件链接:
https://drive.google.com/file/d/1zG2JWd1gSEaxC15WpECh7ws_2l-7EWB0/view?usp=sharing
我在这里做错了什么?请帮我纠正这个!谢谢。
【问题讨论】:
【参考方案1】:编辑:
由于只有一条记录,因此命令 jq -c '.[]' 不能用作 NDjson 转换: 此命令更改类似数组的 json 例如:
[
"id": 1
,
"id": 2
,
"id": 3
]
放入每行一个元素的文件(没有封闭数组)
"id": 1,
"id": 2,
"id": 3
在您的情况下它不起作用,您只需将 json 格式化为 NDjson。 以下命令对我有用:
cat healthrecord.json | jq -c . > healthrecordNDJSON.json
(你们真的很亲密^^)
你试过直接上传 healthrecord.json 吗?
您要上传的数据中只有一条记录,因此我不确定“ | jq -c '.[]' ”的行为。 (也许只用“jq -c”代替)。
如果这不起作用,我建议您实际分享您要上传的整个 json 记录以及您用来上传它的命令吗?
【讨论】:
是的,我已经尝试过并得到错误:读取数据时出错,错误消息:无法解析JSON:字符串意外结束;字符串意外结束;预期的关键。感谢您的建议,我会将我的 JSON 文件放入我的答案中。你能看看吗? 嘿,我把 JSON 文件上传到 google drive,这里是链接:drive.google.com/drive/folders/… 这似乎是您的 json 格式问题。您能否将其复制粘贴到您的问题中? 我把json文件的链接放在我的问题里,你能看一下吗? 好的,我明白你为什么没有把你的问题放在正文中^^以上是关于如何将 JSON 文件上传到 BigQuery的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 从 googlecloud 存储上传到 bigquery 时出现混淆