如何从BigQuery中的查询中检索numRows,resultSize

时间:2019-05-23 21:46:25

标签: python google-bigquery

是否可以在不下载所有结果的情况下检索查询返回的总行数?例如,这是我当前正在做的事情:

client = bigquery.Client()
res = client.query("SELECT funding_round_type FROM `investments`")
results = res.result()

>>> results.num_results
0
>>> records = [_ for _ in results]
>>> results.num_results
168647

换句话说,如果不下载结果,我将无法获得numResults。是否有另一种方法无需下载所有数据即可获取结果查询总数/结果查询集中的MB数量?

1 个答案:

答案 0 :(得分:2)

任何查询的结果都存储在所谓的匿名表中。您可以使用jobs.get API检索对此表的引用。然后您可以使用tables.get API来检索有关该表的信息-特别是行和大小。例如,在python中:

>>> table = client.get_table(res.destination)
>>> print (table.num_rows, table.num_bytes)
168647 1451831