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

时间:2015-08-15 01:46:58

标签: google-bigquery

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

1 个答案:

答案 0 :(得分:18)

关闭。在您的第一个示例中,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模式。对不起!