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

What does REPEATED field in Google Bigquery mean?

请检查我对以下示例中 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,但找不到任何解释。

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

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

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

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

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

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