【问题标题】:BigQuery's handling of missing fields and unknown/extra fields when importing JSONBigQuery 在导入 JSON 时对缺失字段和未知/额外字段的处理
【发布时间】:2013-03-24 03:34:14
【问题描述】:

我的 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 如何处理数据中的未知/额外字段?

【问题讨论】:

    标签: json google-app-engine schema google-bigquery google-cloud-storage


    【解决方案1】:

    我刚刚使用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”字段中看到的错误,如果您的数据包含额外的字段,它将失败。 您的数据必须与documentation中描述的表架构匹配,并且您不能修改immutable的表架构(如果需要添加,您可以找到一些信息here字段使用另一个表)

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

    希望有帮助

    【讨论】:

      【解决方案2】:

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

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

      祝你好运!

      【讨论】:

      • 欢迎堆栈溢出 :) 请熟悉如何发布一个好的答案。你的答案应该是评论:)
      • @DawidPi 我不同意。当他遇到这个问题时,他非常清楚地说明了他的解决方案是什么。如果这解决了问题,这是一个可以接受的答案。
      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 2014-09-03
      • 2017-09-29
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多