使用“列表”检索 BigQuery 的 queryResult 只得到 512 条记录
Posted
技术标签:
【中文标题】使用“列表”检索 BigQuery 的 queryResult 只得到 512 条记录【英文标题】:Using "List" to retrieve queryResult of BigQuery only got 512 records 【发布时间】:2013-03-27 03:21:45 【问题描述】:queryResult显示有13224行,然后我用了
List<TableRow> rows = queryResult.getRows();
然后它显示列表“行”只有 512 行。
有什么帮助吗?
【问题讨论】:
你是怎么知道它有 13224 行的?是 getTotalRows() 吗? 是的,我使用了两种方式:我使用了 getTotalRows,并且我还去了 bigquery 网站并在那里进行了直接查询,它也返回了相同数量的结果。 文档没有说明 getRows 方法中的行限制,因此 getTotalRow 调用的值应该是返回列表的大小...抱歉,对此无能为力。 谢谢你:) 你能指点我的文档吗?谢谢 看看这里:***.com/questions/14570761/… 【参考方案1】:如果行很大或数量很多,您可能无法取回所有行。您可以通过调用 jobs.GetQUeryResults() 或 tabledata.List() 来获取剩余的行,并带有相应的偏移量。
来自https://developers.google.com/bigquery/docs/queries:
-
使用您的查询字符串调用jobs.query。此方法需要一个可选的超时时间;如果设置为 0 或未指定,该方法将默认为 10 秒。
如果查询在指定的超时时间内返回,该方法将返回第一页结果。如需其他结果,请调用 jobs.getQueryResults,如下所述。
如果在查询完成之前查询超时到期,该方法将返回 jobComplete=false,并且您必须按照接下来的描述调用 jobs.getQueryResults。即使在超时期限之后,查询作业仍将继续运行,直到它完成,无论是成功还是发生错误。
[如有必要] 调用 jobs.getQueryResults 以分页浏览其他结果,从超过其超时的查询中获取结果,或检查任何查询结果,直到临时表被删除。此方法可让您指定起始行,并采用与作业相同的超时。查询超时以允许在作业尚未完成时等待。
【讨论】:
【参考方案2】:我认为你必须使用结果集对象来获取行。 result_set.getString() 方法用于获取行的属性。
【讨论】:
以上是关于使用“列表”检索 BigQuery 的 queryResult 只得到 512 条记录的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python Pycharm 在 Big Query 中查询公共数据集