【问题标题】:BigQuery - Export CSV certain columnsBigQuery - 导出 CSV 某些列
【发布时间】:2018-09-19 03:51:40
【问题描述】:

我想从 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 表中的字段。

提前致谢

【问题讨论】:

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


    【解决方案1】:

    BigQuery Export 仅支持整个表导出!

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

    【讨论】:

    • 谢谢。我以为它只支持整个表导出,但我找不到任何类似的东西
    • 如果我得到正确的结果,我使用作业的查询结果可能是 csv 吗?这就是我从你设置的destinationTAable 得到的结果
    • 您的选择语句的结果 - 将是 bigquery 表。 csv 是一个正式的文件。 select 语句的结果将是您放入其中的任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多