3

我的 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.

与上述错误相关的两个问题:

  1. BigQuery 如何处理数据中的缺失字段?默认情况下不是所有字段都可以为空吗?

  2. BigQuery 如何处理数据中的未知/额外字段?

4

2 回答 2

4

我刚刚使用webUI测试了您的架构/数据并收到以下错误:

Line:1 / Column:84, The field "XXXX" was not found on the current message.
Too many errors encountered. Limit is: 0.
  1. 是的,默认情况下字段可以为。如果要更改字段模式,则需要显式定义字段模式(可为空、必需或重复)。如果您的 JSON 数据中缺少必填字段,您将收到错误消息,但如果该字段可以为空,它将起作用。

  2. 正如您在“XXXX”字段中看到的错误,如果您的数据包含额外的字段,它将失败。您的数据必须与文档中描述的表架构匹配,并且您不能修改不可变的表架构(如果您需要使用另一个表添加字段,可以在此处找到一些信息)

  3. 对处理 JSON 数据的人可能有用的另一件事是,每个数据行必须包含在文件中的一行中(如在google 示例文件中)。如果你的 json 数据格式很漂亮,数据导入会失败。

希望这有帮助

于 2013-04-19T15:17:18.037 回答
0

本周我遇到了这个问题,最近几天我一直在查看代码,问题是 BQ TableRow 没有在 Big Query TableSchema 上定义的所有元素。

请重新检查您在 TableRow 上添加的所有参数,并确保该参数在 TableSchema 上正确表示。

祝你好运!

于 2015-10-16T14:38:15.023 回答