Python中无需遍历RowIterator获取BigQuery单条查询结果的简便方法
解决方案
针对单值查询场景,无需手动遍历RowIterator的实现方法有两种:
- 方法1(推荐):使用官方内置的
scalar()方法
只要你使用的google-cloud-bigquery库版本大于等于2.0.0,就可以直接调用QueryJob对象的scalar()方法,它会自动等待查询执行完成,直接返回第一行第一个字段的取值,代码如下:
这是专门为单值查询设计的简写接口,代码最简洁。max_date = query_job.scalar() - 方法2:转DataFrame后取首值
如果你已经在用pandas处理数据,可以直接将查询结果转为DataFrame后取首行首列:max_date = query_job.to_dataframe().iloc[0, 0]
以上两种方法都会自动阻塞等待查询任务完成,不需要额外编写代码等待任务执行结束。
内容的提问来源于stack exchange,提问作者ysd
相关产品推荐
相关产品推荐

