python - BigQuery : result set in UI and from API have different number of rows. 为什么?

标签 python google-bigquery etl

我正在使用 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/

相关文章:

python - 设置卷积神经网络中层的维度

google-analytics - 尝试通过 visitNumber 使用 STRING_AGG 函数获取唯一的来源、媒介、事件

python - 使用 Python 进行网页抓取 - 选择 div、h2 和 h3 类

google-cloud-platform - 如何将记录插入 BigQuery Linked server

google-cloud-platform - 如何在 BigQuery 中分组为结构?

etl - Talend 将平面文件规范化为关系数据库表

sql-server - ssis 中的日期值错误

c# - 填充脚本组件中的输出列

python - 文本差异 JSON

python - 中央小部件的 pyqt 设计器和布局