使用 Google 表格作为具有重复字段的 BigQuery 数据源

Posted

技术标签:

【中文标题】使用 Google 表格作为具有重复字段的 BigQuery 数据源【英文标题】:Using Google Sheets as a BigQuery data source with Repeated Fields 【发布时间】:2017-07-31 10:36:47 【问题描述】:

我正在尝试使用 Google 表格作为 BigQuery 表的数据源。 我的一个数据集包括重复的字段。应如何在 GoogleSheets 中构造数据才能作为重复字段正常工作?

到目前为止,我已经尝试用逗号分隔重复的值。 我在创建表时没有收到错误,但是当我尝试查询数据时,返回的错误是“内部错误”。

【问题讨论】:

【参考方案1】:

如您所见in the docs,无法在 Google 表格中保存重复字段(只有支持类对象方案的文件才能支持重复字段)。

如果您必须使用 Google 电子表格,我认为您仍然可以通过一些额外处理来解决此问题。

我刚刚在我的 Google Drive 中创建了这个文件作为示例:

并将其加载到名为“test4”的表中,其类型为 STRING:

现在可以使用此 STRING 并拥有您想要的重复字段。一种可能性是这个查询使用了JSON_EXTRACT 函数:

SELECT
  SPLIT(REGEXP_REPLACE(JSON_EXTRACT(user, '$.a'), r'\[|\]', ''), ',') a
FROM `your_table`

这会导致再次出现重复字段:

【讨论】:

以上是关于使用 Google 表格作为具有重复字段的 BigQuery 数据源的主要内容,如果未能解决你的问题,请参考以下文章

将Big Query中的数据自动导入Google表格?

如何通过 Google 表格中的二维数组通过 Apps 脚本插入 Big Query?

如何以 CSV 表格格式将原始数据源从 Google Big Query 导出到 R 服务器?

Google表格中的粗体特定文本[重复]

如何将具有重复字段值的表格数据转换为层次结构的 JSON?

Google BigQuery 重复字段