我的BigQuery表的架构如下所示:
A:STRING,B:STRING,C:STRING,D:STRING,E:STRING,F:STRING,createdAt:INTEGER,updatedAt:INTEGER,I:STRING
云存储中的文件(JSON)只有一个项目,它看起来像:
{
"A": "AAA",
"B": "BBB",
"E": "EEEEE",
"F": "FFFFF",
"createdAt": 1364226047214,
"XXXX": "XXXXXXXXXXX",
"I": "IIIIII",
"YYYY": {
"Y1": 1.99,
"Y2": "YYYYYY"
},
"location": {
"city": "Amherst",
"region": "NS",
"country": "CA"
},
"purchaseDate": 1364225968000,
"updatedAt": 1364226052634
}
我收到以下错误:
Errors:
Line:1 / Column:173, The field "createdAt" was not found on the current message.
Too many errors encountered. Limit is: 0.
与上述错误相关的两个问题:
BigQuery如何处理数据中缺少的字段?不是全部 字段默认为可空?
BigQuery如何处理数据中的未知/额外字段?
答案 0 :(得分:4)
我刚刚使用webUI测试了您的架构/数据,并出现以下错误:
Line:1 / Column:84, The field "XXXX" was not found on the current message.
Too many errors encountered. Limit is: 0.
是的,默认情况下字段可以为空。如果要更改字段模式,则需要明确定义字段模式(可空,必需或重复)。如果您的JSON数据中缺少必填字段,您将收到错误,但如果此相同字段可以为空,则可以使用。
正如您在“XXXX”字段中看到的错误一样,如果您的数据包含额外字段,则会失败。 您的数据必须与documentation中所述的表架构匹配,并且您无法修改immutable的表架构(您可以找到一些信息here如果你需要使用另一个表添加字段)
对于处理JSON数据的人来说,另一件有用的事情是每个数据行必须包含在文件中的单行中(例如google example file中)。如果您的json数据处于非常合理的格式,则数据导入将失败。
希望这个帮助
答案 1 :(得分:0)
本周我遇到了这个问题,在过去几天我一直在查看代码,问题是BQ TableRow没有在Big Query TableSchema上定义的所有元素。
请重新检查您在TableRow上添加的所有参数,并在TableSchema上正确显示此参数。
祝你好运!