使用JQ将JSON blob转换为BQ友好格式

时间:2019-02-12 19:18:29

标签: json google-bigquery jq

首先,我几乎没有JSON,JQ或Java方面的任何经验。我已经花了很多时间尝试使用jq命令行功能来正确格式化测试数据块,以便我可以轻松地将其输入到Google BigQuery中。

{
    "total_items": 848,
    "page_count": 34,
    "items": [
        {
            "landing_id": "708d9e3eb106820f98162d879198774b",
            "token": "708d9e3eb106820f98162d879198774b",
            "response_id": "708d9e3eb106820f98162d879198774b",
            "landed_at": "2019-02-12T01:58:02Z",
            "submitted_at": "2019-02-12T01:58:31Z",
            "metadata": {
                "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3560.98 Safari/537.36",
                "platform": "other",
                "referer": "https://test.typeform.com/to/LTYE9W?prefilled_answer=8&email=test.x20a@gmail.com",
                "network_id": "35b9eae170",
                "browser": "default"
            },
            "answers": [
                {
                    "field": {
                        "id": "fX64BkjuxYy1",
                        "type": "opinion_scale",
                        "ref": "97f8e18ad06a02e6"
                    },
                    "type": "number",
                    "number": 8
                },
                {
                    "field": {
                        "id": "lYeFxbL67g8B",
                        "type": "multiple_choice",
                        "ref": "78d09e15-7d42-49ec-9f9d-004bf7d3058a"
                    },
                    "type": "choices",
                    "choices": {
                        "labels": [
                            "Experience"
                        ]
                    }
                },
                {
                    "field": {
                        "id": "D3ubKSVfNnlY",
                        "type": "multiple_choice",
                        "ref": "684cb3bd-09cb-4f27-8e7d-baef6a09f787"
                    },
                    "type": "choices",
                    "choices": {
                        "labels": [
                            "Condition"
                        ]
                    }
                },
                {
                    "field": {
                        "id": "UccviSuUQPio",
                        "type": "yes_no",
                        "ref": "ed7e0d9c-5b62-4b0f-9395-54a53d125711"
                    },
                    "type": "boolean",
                    "boolean": false
                }
            ],
            "hidden": {
                "email": "test.x20a@gmail.com"
            }
        }
        ]
}

I've been using this tutorial, but with no success, and it's getting incredibly frustrating

让我们假设我想要所有字段,但是我想摆脱包含total_itemspage_count的顶部。因此,基本上所有事物都以landing_id开头。抱歉,我没有进一步尝试为您提供所有基线,但是我什么都没得到。

1 个答案:

答案 0 :(得分:0)

对于给定的示例:

 jq -c  .items[] lala.json  > lala.jq.json

然后您可以加载到BigQuery中:

 bq load --source_format NEWLINE_DELIMITED_JSON --autodetect fh-bigquery:deleting.testjson lala.jq.json

然后就可以对其进行查询了:

enter image description here

请注意,用户“ peak”的答案缺少-c[]来控制输出并从数组中拆分为不同的项目。