【问题标题】:Appending data to a bigquery table for some of the columns only仅为某些列将数据附加到 bigquery 表
【发布时间】:2012-07-06 05:45:20
【问题描述】:

我通过浏览器工具创建了一个带有模式的大查询表。下次我通过本地 API 调用将 csv 附加到该表中。但是该 csv 不包含我已经指定的所有列。所以我收到错误“提供的架构与表 xxxxxxxxxxxxx:xxxx.xxxx 不匹配。” .那么如何通过 API 调用将值附加到某些特定列的 bigquery 表中?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您可以使用更窄的架构附加到表中。也就是说,如果您的表有字段“A”、“B”和“C”,您可以附加一个只有字段“A”和“C”的 CSV 文件,只要字段“B”标记为可选(这是默认设置)。只需确保在加载作业中提供正确的 CSV 文件架构即可。

    或者,“allowJaggedRows”选项可能会在此处为您提供帮助。这使您可以指定比架构中更少的列,其余的将用空值填充。当然,如果你想跳过模式中间的列,你可能会不走运。

    最后,您可以通过 tables.update() 或 tables.patch() 调用更新架构以添加列。这可以让您添加原始表中没有的列。

    【讨论】:

    • 这还不支持吗?什么是补丁 (cloud.google.com/bigquery/docs/reference/v2/tables/patch)?我正在评估物联网的不同选项,更新现有行是必不可少的
    • 我已经用有关如何执行此操作的最新信息更新了答案。如果您还有其他问题,请随时提出另一个问题。
    【解决方案2】:

    您可以使用 JSON 数据格式而不是 CSV 来执行此操作,前提是您的字段标记为 NULLABLE(而不是 REQUIRED)。

    这部分文档介绍JSON格式:https://developers.google.com/bigquery/preparing-data-for-bigquery

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2016-07-18
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多