@在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个字符。