导出 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 引号字符?的主要内容,如果未能解决你的问题,请参考以下文章

导出时删除 Clickhouse 中字符串的引号

PHPmyadmin 3.4.9 导出到 CSV 的问题

在 MySql 中,如何将 csv 文件中的 sql 字符串中的空值导出为双引号(“”)?

Pandas - 是不是可以在没有引号字符的情况下读取_csv?

如何在 PHP 中去除特殊的引号字符?

导出csv文件示例