导出 BQ 表时是不是可以指定 CSV 引号字符?
Posted
技术标签:
【中文标题】导出 BQ 表时是不是可以指定 CSV 引号字符?【英文标题】:Is it possible to specify the CSV quote character when exporting BQ tables?导出 BQ 表时是否可以指定 CSV 引号字符? 【发布时间】:2017-03-17 00:21:25 【问题描述】:我正在使用以下命令导出表格bq extract --destination_format=CSV --compression=GZIP --noprint_header <table> <gcs>
我注意到包含双引号的字符串在导出时附加了双引号,并在此线程中偶然发现了原因:Data between quotes and field separator
过去似乎有一种方法可以更改引号字符(根据乔丹在答案中的评论),但我今天似乎找不到它。
目前是否可以在将 BQ 表导出为 CSV 时指定引号字符?
【问题讨论】:
【参考方案1】:我认为 Jordan 的评论与 Load Jobs 相关,不适用于 Extract Jobs
我在您的情况下看到的尝试选项是用单引号替换所有双引号(通过 SELECT REPLACE(field,...) ... FROM table ... 以新表作为目标),然后提取对于修改后的表 当然,这假设您可以负担得起这样的替代品,并且不会破坏您的产品/应用程序。
下面是您应该运行的查询的简化示例
#standardSQL
SELECT * REPLACE (REPLACE(fieldWithIssue, '"', "'") AS fieldWithIssue)
FROM yourTable
第一个 REPLACE 是 SELECT * REPLACE
功能的一部分
而第二个REPLACE
只是简单的字符串函数,用单引号替换双引号
【讨论】:
以上是关于导出 BQ 表时是不是可以指定 CSV 引号字符?的主要内容,如果未能解决你的问题,请参考以下文章
在 MySql 中,如何将 csv 文件中的 sql 字符串中的空值导出为双引号(“”)?