1

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

4

2 回答 2

1

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

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

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

于 2012-07-07T23:51:39.777 回答
0

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

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

于 2013-11-05T21:16:05.653 回答