【问题标题】:What does REPEATED field in Google Bigquery mean?Google Bigquery 中的 REPEATED 字段是什么意思?
【发布时间】:2015-11-08 08:07:29
【问题描述】:

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

{
    "title": "History of Alphabet",
    "author": [
        {
            "name": "Larry"
        },
    ]
}

此 JSON 具有架构:

[
    {
        "name": "title",
        "type": "STRING"
    },
    {
        "name": "author",
        "type": "RECORD",
        "fields": [
            {
                "name": "name",
                "type": "STRING"
            }
        ]
    }
]

但是下面的 JSON

{
    "title": "History of Alphabet",
    "author": ["Larry", "Steve", "Eric"]
}

有架构:

[
    {
        "name": "title",
        "type": "STRING"
    },
    {
        "name": "author",
        "type": "STRING",
        "mode": "REPEATED"
    }
]

这对吗?

nb:我试图通过documentation,但找不到任何解释。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    关闭。在您的第一个示例中,author 是一个对象数组,对应于 BQ 中的重复记录。所以架构是:

    [
        {
            "name": "title",
            "type": "STRING"
        },
        {
            "name": "author",
            "type": "RECORD",
            "mode": "REPEATED",   <--- NOTE!
            "fields": [
                {
                    "name": "name",
                    "type": "STRING"
                }
            ]
        }
    ]
    

    您的第二个数据/模式对看起来不错(但请注意,整个模式是一个数组,而不是一个对象,并且元素之间需要逗号)。

    这里有一些关于嵌套和重复字段的讨论: https://cloud.google.com/bigquery/docs/data?hl=en#nested

    这里还有一些示例 JSON 数据对象: https://cloud.google.com/bigquery/preparing-data-for-bigquery#dataformats

    但我同意我们没有很好地解释这些对象如何映射到 BQ 模式。很抱歉!

    【讨论】:

    • 感谢您提到架构是一个数组。
    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2017-12-09
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    相关资源
    最近更新 更多