【问题标题】:How do I add a nested field to my BigQuery table schema?如何将嵌套字段添加到我的 BigQuery 表架构?
【发布时间】:2017-01-13 15:40:35
【问题描述】:

我正在尝试向我的 BigQuery 表架构添加一个嵌套字段。我通常可以通过 Web UI 或命令行执行此操作,但是当我尝试使用嵌套字段时,我收到以下错误,因为新字段名称中包含 .

Error updating schema: Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long.

如何添加嵌套字段?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    使用bq命令行工具,首先导出表的架构:

    bq show --format=prettyjson your-project:your_dataset.table_to_update | python -c 'import sys,json; print(json.dumps(json.load(sys.stdin)["schema"]["fields"]))' > table_schema.json
    

    然后手动将新的嵌套字段添加到 JSON。添加后,将更新后的架构推送到 BigQuery:

    bq update -t --schema='updated_table_schema.json' your-project:your_dataset.table_to_update
    

    【讨论】:

    • 完美!谢谢。它一开始没有用,因为它引发了No JSON object could be decoded。但是我手动编辑了架构以仅获取字段并且它有效。
    • 写入时启用SchemaUpdateOption.ALLOW_FIELD_ADDITION是否可以自动添加可为空的嵌套字段?
    猜你喜欢
    • 2013-03-24
    • 2013-05-18
    • 2017-08-14
    • 2022-08-13
    • 2019-02-28
    • 2015-08-26
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多