我正在使用 Python BigQuery 客户端库。我的连接良好,正在查询相同的数据集等。请查看:
queryOutput = bigquery.jobs().getQueryResults(projectId=projectId,jobId=jobId,pageToken=pageToken).execute()
print('totalRows: '+str(queryOutput['totalRows']))
返回:
totalRows: 208
但是,如果我采用完全相同的查询,并将其输入 BQ Web UI,结果集中会有 176 行。为什么会发生这种情况?为什么一个查询根据它所通过的接口(interface)而具有不同的结果集?
最佳答案
您得到不同结果的原因实际上是(很可能)您在 SELECT 中引用的某些字段是重复的(hits.hitNumber、hits.page.pagePath),并且您设置了 LIMIT 100。
现在,因为您没有任何 ORDER BY,所以顺序是不可预测的,因此每次运行查询时,您都会获得不同的 100 行/记录,而这些行/记录又具有不同的嵌套字段计数,从而导致不同的最终计数(除非您使用缓存结果)
希望您能理解
关于python - BigQuery : result set in UI and from API have different number of rows. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36190684/