【问题标题】:How to upload the JSON file to BigQuery如何将 JSON 文件上传到 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

我在这里做错了什么?请帮我纠正这个!谢谢。

【问题讨论】:

    标签: json google-bigquery


    【解决方案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文件的链接放在我的问题里,你能看一下吗?
    • 好的,我明白你为什么没有把你的问题放在正文中^^
    猜你喜欢
    • 2021-10-19
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2016-12-29
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多