@在JSON模式字段名称标志,谷歌的BigQuery
问题描述:
我有一个问题,@在JSON模式字段名称标志,谷歌的BigQuery
我不能json的文件我要上传至BigQuery,因为我有我的字段名称@分配JSON模式。
"Events": {
"type": "object",
"properties": {
"Event": {
"type": "object",
"properties": {
"@places": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"comp_id": {
"type": "string"
},
"manager_id": {
"type": "integer"
},
"price": {
"type": "integer"
},
"size": {
"type": "integer"
},
"location": {
"type": "integer"
},
"date": {
"type": "object",
"properties": {
"locale": {
"type": "string"
答
虽然你把一个JSON密钥的任何字符串是有效的,也Q: Which characters are valid/invalid in a JSON key name?看到,数据的消费者可能有,这实际上是不允许的具体要求。
在你的情况下,BigQuery是消费者,它可能只是它不接受某些字符。如果是这种情况,除了从您的模式中删除特殊字符(在您的情况下为“@”)之外没有别的办法。
答
JSON文件中的字段将作为字段添加到BigQuery表中。 @不允许在BigQuery表的字段名中使用,因此您不能在JSON文件中使用它。
从BQ文档:
名称只能包含字母(A-Z,A-Z),数字(0-9),或 下划线(_),并且必须以字母或下划线开始。 的最大长度是128个字符。