在BigQuery中,bigquery.client.query()
方法只能返回一个结果集。如果要查看多个结果集,可以使用bigquery.client.get_query_results()
方法。
下面是一个示例代码,演示如何使用bigquery.client.query()
和bigquery.client.get_query_results()
来查看多个结果集。
from google.cloud import bigquery
# 创建 BigQuery 客户端
client = bigquery.Client()
# 执行查询
query = """
SELECT column1 FROM `project.dataset.table1`
UNION ALL
SELECT column1 FROM `project.dataset.table2`
"""
query_job = client.query(query)
# 获取第一个结果集
results_1 = query_job.result()
# 打印第一个结果集
for row in results_1:
print(row.column1)
# 获取第二个结果集
results_2 = client.get_query_results(query_job.job_id, page_token=query_job.next_page_token).result()
# 打印第二个结果集
for row in results_2:
print(row.column1)
在上面的示例中,首先使用bigquery.client.query()
方法执行了一个包含两个结果集的查询。然后,使用query_job.result()
方法获取第一个结果集,并使用循环打印每一行的值。接着,使用bigquery.client.get_query_results()
方法获取第二个结果集,并使用循环打印每一行的值。
注意,如果查询只有一个结果集,可以直接使用query_job.result()
方法获取结果集。只有在查询有多个结果集时,才需要使用bigquery.client.get_query_results()
方法获取额外的结果集。