小编Kis*_*mar的帖子

bigquery.client.query()可以查看2个结果集吗?

我想使用 bigquery API 运行 2 个 Select 参数。例如,如果我运行以下查询

SELECT 1;
SELECT 2;
Run Code Online (Sandbox Code Playgroud)

当我使用以下 python 脚本运行它时,我只获得第二个查询的结果。

def runquery();
    bqclient = bigquery.client()
    query = """ SELECT 1; 
                SELECT 2;"""
    query_job = bqclient.query(query)
    data = query_job.result()
    rows = list(data)
    print(rows)
Run Code Online (Sandbox Code Playgroud)

结果:

[Row((2,), {'f0_': 0})]
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 bigquery 查询编辑器中运行相同的查询,我将能够查看两个结果。

来自 BQ 查询编辑器的图像

我如何才能同时获取 Bigquery API 结果集中的查询结果?我需要将 jobconfig 添加到 client.query() 语句吗?

python python-3.x google-bigquery

3
推荐指数
1
解决办法
1026
查看次数

在 google Bigquery 中使用加载作业时如何创建日期分区表?

有人能够解释如何在使用 JobConfig 在 google Bigquery 中使用加载作业时创建日期分区表。

https://cloud.google.com/bigquery/docs/creating-column-partitions#creating_a_partitioned_table_when_loading_data

我无法理解文档,如果有人可以用示例进行解释,那将非常有帮助。

编辑:所以我想我想感谢@irvifa,但我仍然无法创建一个TimePartitioned Table,这是我尝试使用的代码。

import pandas
from google.cloud import bigquery


def load_df(self, df):
  project_id="ProjectID"
  dataset_id="Dataset"
  table_id="TableName"
  table_ref=project_id+"."+dataset_id+"."+table_id
  time_partitioning = bigquery.table.TimePartitioning(field="PartitionColumn")
  job_config = bigquery.LoadJobConfig(
                         schema="Schema",
                         destinationTable=table_ref
                         write_disposition="WRITE_TRUNCATE",
                         timePartitioning=time_partitioning
                         )
  Job = Client.load_table_from_dataframe(df, table_ref, 
                                         job_config=job_config)
  Job.result()
Run Code Online (Sandbox Code Playgroud)

python google-bigquery table-partitioning

2
推荐指数
1
解决办法
1018
查看次数