BigQuery - 导出CSV某些列

时间:2018-04-09 17:10:04

标签: java csv google-cloud-platform google-bigquery

我想从bigQuery导出表或视图,但我不需要导出所有内容:我只需要导出某些列。如何配置要导出的文件?

我目前的代码是这样的:

BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService();
Field fieldToExport = Field.of("column to export", LegacySQLTypeName.STRING);
Table table = bigQuery.getTable("mybigqueryid", "mytable", /* here it only accepts tableOptions, not fields*/);
String format = "csv";
String bucketPath = "mybucketpath.csv";
Job job = table.extract(format, bucketPath);

我最初尝试使用TableField,但显然这些不是来自bigquery表的字段。

提前致谢

1 个答案:

答案 0 :(得分:2)

BigQuery Export仅支持整个表导出!

如果只需要导出部分内容 - 您应该执行SELECT语句,然后将结果导出为CSV 为此,您可以使用SELECT语句的目标表,也可以删除此表(显式或通过设置expiration)或者您可以使用所谓的匿名表 - 这是您的select语句的结果是临时存储的 - 您可以获得它来自jobs.get API - https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.query.destinationTable