gpt4 book ai didi

java - BigQuery Java 客户端 - 如何查询外部(联合)表?

转载 作者:行者123 更新时间:2023-11-30 06:52:34 26 4
gpt4 key购买 nike

我正在使用新的 google-cloud-bigquery 和 google-cloud-storage api。我想查询一个外部表,我是这样创建的:

ExternalTableDefinition etd = ExternalTableDefinition.newBuilder(bucketPath, schema, FormatOptions.csv()).build();
TableId tableID = TableId.of(dataset, targetTableName);
TableInfo tableInfo = TableInfo.newBuilder(tableID, etd).build();

现在我想查询该表,但要使用 QueryRequest 将其作为临时表:

QueryRequest queryRequest = QueryRequest.newBuilder("select * from table limit 10 ").setUseLegacySql(true).setDefaultDataset(dataset).build();
QueryResponse response = client.query(queryRequest);

但是由于表不存在而失败,这是有道理的。我正在尝试执行类似于此命令行的操作:

bq query --project_id=<project ID> --external_table_definition=wikipedia::/tmp/wikipedia 'select name from wikipedia where name contains "Alex";'

但在 Java 中。

总结一下:如何通过 Java 客户端创建和查询外部临时表进行大查询?

引用文档: https://cloud.google.com/bigquery/external-data-sources#temporary-tables

最佳答案

作为引用,以下是操作方法:

public static void main(String[] args) 
{

BigQuery bigquery =
BigQueryOptions.getDefaultInstance().getService();


ExternalTableDefinition etd =
ExternalTableDefinition.newBuilder("gs://", createSchema(),
FormatOptions.csv()).build();

TableId tableId = TableId.of("testdataset", "mytablename");


bigquery.create(TableInfo.newBuilder(tableId, etd).build());


//Now query the table project.testdataset.mytablename

}

关于java - BigQuery Java 客户端 - 如何查询外部(联合)表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com