【发布时间】:2018-02-15 04:20:56
【问题描述】:
我正在使用 Python 客户端库 v0.28 学习 BigQuery API https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#run-a-simple-query
编写了这个简单的代码来从表中获取数据
1) 创建客户端对象
client_ = bigquery.Client.from_service_account_json('/Users/xyz/key.json')
2) 开始新的异步查询作业
QUERY = 'SELECT visitid FROM `1234567.ga_sessions_20180101`'
query_job = client_.query(QUERY
, job_id=str(uuid.uuid4()))
3) 轮询直到查询完成
while (query_job.state == 'RUNNING'):
time.sleep(5)
query_job.reload()
4) 在迭代中获取结果
query_job.reload()
iter = query_job.result()
在这个阶段,我想获取表中有多少行。根据文档 GitHub 代码,iter 的类型为 bigquery.table.RowIterator,属性为 [tier.total_rows][1]
5) 但是,在我打印的这个阶段:
print(iter.total_rows)
它不断返回None
我很确定这个表不是空的,干查询格式正确!
对我在这里缺少的任何指针的任何帮助都会非常有帮助......非常感谢!
干杯!
【问题讨论】: