我使用以下代码从BigQuery获得结果:
from google.oauth2 import service_account
from google.cloud import bigquery
credential = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE)
scoped_credential = credential.with_scopes(BIG_QUERY_SCOPE)
client = bigquery.Client(project="XX-XX",credentials=scoped_credential)
query_results = client.run_sync_query(query_detail)
query_results.use_legacy_sql = False
query_results.run()
iterator = query_results.fetch_data()
rows = iterator.query_result.rows
但它只能返回50000行。我试图在获取数据时进行分页,但未能弄清楚如何进行分页:
page_token = query_results.page_token
iterator = query_results.fetch_data(max_results=500, page_token=page_token)
我无法找到如何获取更新的page_token。
谢谢,
答案 0 :(得分:1)
我认为你很亲密。立即尝试运行此代码:
data = list(query_results.fetch_data()) # changed from `iterator` to `data` the variable name
页面令牌的管理是自动完成的。