从 Bigquery 导出 CSV,其中的列用双引号括起来,添加不起作用

问题描述 投票:0回答:1

我正在尝试使用导出命令从 Google Big Query 控制台将表导出为 GCS 存储桶中的 CSV 文件,但遇到双引号问题。

我想导出为csv,但每个列值都应该用双引号引起来,我尝试使用各种字符串函数,如FORMAT、CONCAT、REPLACE等,但无法获得所需的结果。

我正在尝试导出为 csv,因为导出命令仅支持这些格式(CSV、JSON、Parquet、Avro),即使是纯文本文件也适合我,但没有该选项,我需要用 包围的列双引号并用逗号分隔。

这是导出命令: 导出数据选项( uri='gs://bucket-name123/SOME-FILE-*', format='CSV', overwrite=true, header=false, field_delimiter=',') AS SELECT CONCAT('"', column1,'"'), CONCAT('"',column2,'"') 来自

projectId.datasetId.TABLE_NAME
其中 column3 = true;

数据已成功导出到 GCS 存储桶中,但我在该列周围得到 3 个双引号,而不是 1 个双引号:

GCS导出的GCS文件内容如下: """值 1""","""AAA"""" """值2""","""BBB"""" """值3""","""CCC""""

我期待这样的内容格式: “值1”,“AAA” “值2”,“BBB”

任何帮助或提示将不胜感激,

我也尝试过 FORMAT('%s',column1) ——这个函数,但它也会产生 3 个双引号

我还尝试将 EXPORT 查询作为 Java Google BQ api 的作业,但结果相同。

我无法使用“bq extract”,因为我只想导出有限的列,而 extract 没有导出有限列的功能,它会导出整个表。

google-cloud-platform google-bigquery export-to-csv spring-cloud-gcp-bigquery
1个回答
0
投票

不要自己添加双引号。当您从 BigQuery 导出到 CSV 时,如果需要,会自动添加双引号,例如用于多行字符串和转义双引号。

所以你的命令应该是:

EXPORT DATA OPTIONS(
  uri='gs://bucket-name123/SOME-FILE-*', 
  format='CSV',
  overwrite=true,
  header=false,
  field_delimiter=',')
AS SELECT column1, column2 from projectId.datasetId.TABLE_NAME
WHERE column3 = true;

大多数 CSV 阅读器都能够读取输出格式。

© www.soinside.com 2019 - 2024. All rights reserved.