如何在Python中打印BigQuery的计数表查询?

3

我试图在Python中打印BigQuery表中可用行的计数,我编写了以下代码:

from google.cloud import bigquery def main():
    myquery = "select count(*) from `myproject.mydataset.mytable`"
    client = bigquery.Client()
    job = client.query(myquery)
    result = job.result()
    print("Total rows available: ",result)

当我执行上述代码时,输出结果为:"Total rows available: google.cloud.bigquery.table.RowIterator object at 0x00000247B65F29E8"。这意味着我的输出是一个对象值。但我想打印出查询结果表中实际可用的行数。

最好使用Table对象来完成。请参考连接表格的示例,然后只需打印table.num_rows即可;这个操作是免费的,并且速度更快。 - Willian Fuks
2个回答

7

我刚刚尝试了这种方法,但输出结果却是“可用总行数: None”。但实际上,我在相应的BQ表中有634700行(如果我从BQ控制台运行相同的查询,会得到相同的结果)。 - Kaustubh Ghole
1
无论如何,这个更改的预期结果应该只有1。因为计数只返回一行。 - Stav Hacohen
result.total_rowsresult.num_results 只报告已迭代的结果数量,并在您开始迭代 RowIterator 之前显示 None 或 0。 - Mark B
results.total_rows 是完美的。https://cloud.google.com/bigquery/docs/samples/bigquery-query-total-rows - Ryan Loggerythm

5

尝试更改您的查询为

myquery = "select count(*) size from `myproject.mydataset.mytable`"
client = bigquery.Client()
job = client.query(myquery)
result = job.result()
for row in results:
    print("Total rows available: ",row.size)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接