Python 不包括页面标记的BigQuery结果
我们正在研究pandas.io.gbq,我们注意到大型结果集的一些异常行为。代码大致如下所示(其中Python 不包括页面标记的BigQuery结果,python,google-bigquery,Python,Google Bigquery,我们正在研究pandas.io.gbq,我们注意到大型结果集的一些异常行为。代码大致如下所示(其中bq来自)。数据的前几页返回有效的PageToken,但之后每对返回一个。返回的JSON的修剪副本可在以下位置查看: 这可能与: 最终,我们在结果集中得到了重复的结果。我可以帮助您找到问题的根源。上面的代码片段启动了获取第一组查询结果的过程,应该会生成一个页面标记。听起来你是在后续通话中遇到问题的-你能告诉我你是如何进行后续通话的吗 你能帮我澄清一下吗?你还提到前几页返回有效的页面标记,然后每两页
bq
来自)。数据的前几页返回有效的PageToken,但之后每对返回一个。返回的JSON的修剪副本可在以下位置查看:
这可能与:
最终,我们在结果集中得到了重复的结果。我可以帮助您找到问题的根源。上面的代码片段启动了获取第一组查询结果的过程,应该会生成一个页面标记。听起来你是在后续通话中遇到问题的-你能告诉我你是如何进行后续通话的吗
你能帮我澄清一下吗?你还提到前几页返回有效的页面标记,然后每两页都不返回。你的意思是你得到的页面根本不包含PageToken吗?或者您的意思是有包含有效页面标记但没有结果的页面 很抱歉,代码片段非常小,只是为了让您了解我们正在进行的API客户端调用。我们正在使用的完整代码可以在以下位置获得:
bq
命令行客户端也有同样的问题。我在bigquery\u client.py
中添加了一些日志,并运行了一个查询:bq-q query-n 9999999--format=csv“SELECT*FROM analysis\u temp.500k\u with_row\u numbers”
(analysis\u temp.500k\u with_row\u numbers)是维基百科数据的子集。结果见:感谢澄清。我将很快为您提供更新。在读取行的客户端逻辑中似乎有一个错误。bq客户机中的循环在使用page_标记和尝试计数行之间交替进行。客户机代码更改尚未发布——但这里有一个简短的总结:基本上,只要页面标记丢失,就不会有更多的结果,迭代应该结束。当页面标记变为空而不是停止时,我们返回到我们应该跟踪的开始索引。发布的客户端中的错误是,开始索引只有在页面标记丢失时才更新-因此它基本上是不正确的,当您到达迭代结束时,得到一个空的页面标记时,我们会使用(错误的)开始索引,并开始从开始索引所在的位置返回结果。我仍然没有看到一个修复推到哪里
import bq
import bigquery_client
#.
#.
#.
client = bq.Client.Get()
kwds = {'timeoutMs': 0, u'projectId': u'xxxxxxx', 'startIndex': 0, 'maxResults': 1000000, u'jobId': u'bqjob_r36320b28158a7c96_000001436eb0431c_1'}
data = client.apiclient.jobs().getQueryResults(**kwds).execute()