我怎么能忽略'|'管道分隔符在 Google BigQuery 中读取 Google 表格数据?

Posted

技术标签:

【中文标题】我怎么能忽略\'|\'管道分隔符在 Google BigQuery 中读取 Google 表格数据?【英文标题】:How can I ignore '|' pipe delimiter reading Google Sheet data in Google BigQuery?我怎么能忽略'|'管道分隔符在 Google BigQuery 中读取 Google 表格数据? 【发布时间】:2018-12-06 15:24:34 【问题描述】:

我使用 Google 表格作为由 Supermetrics 填充的数据存储。我需要在 Google BigQuery 中阅读这些内容以加入多个来源并使用 SQL 操作数据。

当我拉出我的 sting 字段时,其中一些包含竖线字符“|” BQ 会自动使用错误数据分隔这些填充字段并导致查询失败。

有没有办法连接到 Google 表格并告诉 BQ 忽略竖线字符?

带有示例字段:

test~wm~helo_thisisafield_bn~thisisanotherfieldbm|H4|Hello

BQ 将其解读为三个字段:

test~wm~helo_thisisafield_bn~thisisanotherfieldbm, H4, Hello

与架构集不匹配。我无法在架构中将其解释为 | 的数量和存在。不固定。

有什么办法可以忽略这个吗?我可以设置一个分隔符,从 CSV 中提取数据,但不能从 Google 表格中提取数据。

到目前为止,我管理的唯一解决方案是在一个字段中读取整个电子表格并在 SQL 中拆分,这并不理想。

【问题讨论】:

该示例中有多少个字段? 2? 3? 1 个? @FelipeHoffa 在示例中只有一个字段,但是当 BQ 读取 Google 表格时,它被分解为 3 个字段。 【参考方案1】:

在 BigQuery 中创建表格时,在选择 Google Drive for Location 并指定 Google Sheet 的 URL 后,不要选择 File Format 中的 Google Sheet,而是选择 CSV。

然后,您可以在创建选项中指定分隔符。选择逗号,奇怪的是它对我有用,尽管文件是 Google 表格。

【讨论】:

以上是关于我怎么能忽略'|'管道分隔符在 Google BigQuery 中读取 Google 表格数据?的主要内容,如果未能解决你的问题,请参考以下文章

管道命令

如何在Apache Beam / Google Dataflow中使用ParseJsons?

如何在 Google App Engine 中创建版本号

正则表达式提取、删除重复项并与 Google 表格中的管道连接

如何在 Power BI 部署管道中添加“UAT”阶段?

为啥 String.split 需要转义管道分隔符?