相关疑难解决方法(0)

Google Bigquery中的REPEATED字段是什么意思?

请在以下示例中检查我对REPEATED字段的理解:

{
    "title": "History of Alphabet",
    "author": [
        {
            "name": "Larry"
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

这个JSON有架构:

[
    {
        "name": "title",
        "type": "STRING"
    },
    {
        "name": "author",
        "type": "RECORD",
        "fields": [
            {
                "name": "name",
                "type": "STRING"
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

但是以下JSON

{
    "title": "History of Alphabet",
    "author": ["Larry", "Steve", "Eric"]
}
Run Code Online (Sandbox Code Playgroud)

有架构:

[
    {
        "name": "title",
        "type": "STRING"
    },
    {
        "name": "author",
        "type": "STRING",
        "mode": "REPEATED"
    }
]
Run Code Online (Sandbox Code Playgroud)

它是否正确?

nb:我试图浏览文档,但找不到任何解释.

google-bigquery

17
推荐指数
1
解决办法
1万
查看次数

如何将聚合函数应用于从Google BigQuery中的JSON中提取的数据?

我使用的是从BigQuery列中提取JSON数据JSON_EXTRACT.现在我想提取值列表AVG并对它们运行聚合函数(如)..objects[*].vhttp://jsonpath.curiousconcept.com/上测试JsonPath表达式成功.但查询:

SELECT
  JSON_EXTRACT(json_column, "$.id") as id,
  AVG(JSON_EXTRACT(json_column, "$.objects[*].v")) as average_value
FROM [tablename]
Run Code Online (Sandbox Code Playgroud)

在BigQuery上抛出JsonPath解析错误.这可能在BigQuery上吗?或者我是否需要预处理我的数据以便针对我的JSON内部的数据运行聚合函数?

我的数据与此类似:

# Record 1
{
  "id": "abc",
  "objects": [
    {
      "id": 1,
      "v": 1
    },
    {
      "id": 2,
      "v": 3
    }
  ]
}
# Record 2
{
  "id": "def",
  "objects": [
    {
      "id": 1,
      "v": 2
    },
    {
      "id": 2,
      "v": 5
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这与另一个问题有关.

更新:运行两个查询可以简化问题.首先,运行JSON_EXTRACT并将结果保存到视图中.其次,针对此视图运行聚合函数.但即便如此,我还需要纠正JsonPath表达式$.objects[*].v …

sql json aggregate-functions google-cloud-sql google-bigquery

6
推荐指数
1
解决办法
2738
查看次数