我怎么能忽略'|'管道分隔符在 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?