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