BigQuery:UI 和 API 中的结果集具有不同的行数。为什么?

BigQuery: result set in UI and from API have different number of rows. Why?

我正在使用 Python BigQuery 客户端库。我的连接很好,正在查询相同的数据集等。检查一下:

queryOutput = bigquery.jobs().getQueryResults(projectId=projectId,jobId=jobId,pageToken=pageToken).execute()
print('totalRows: '+str(queryOutput['totalRows']))

returns:

totalRows: 208

但如果我采用完全相同的查询,并将其输入 BQ 网络 UI,结果集中有 176 行。为什么会这样?为什么一个查询具有不同的结果集,具体取决于它通过的接口?

您得到不同结果的原因实际上是(很可能)您在 SELECT 中引用的某些字段重复了(hits.hitNumber、hits.page.pagePath)并且您有 LIMIT 100 到位。

现在,因为您没有任何 ORDER BY,顺序是不可预测的,所以每次您 运行 查询都会得到不同的 100 rows/records,这反过来又具有不同的嵌套字段计数导致不同的最终计数(除非您使用缓存结果)

希望对你有意义