google-bigquery - 在 Bigquery 中选择不会检索超过 53000 行的所有数据
问题描述
bigquery 中名为 student_master 的表有 70000 行,我想使用此查询检索行。这样做时我没有发现任何错误,但是,它只检索了 52226 行(意思是,不是全部)。我尝试像这段代码一样在 partition_by 上使用 row_number() ,但仍然没有得到所有数据。我应该怎么办?
我正在使用使用两个 query order by id_student
,limit 35000
和 make asc
(query1), desc
(query2) 的想法,但是如果数据增加(比如说 200000 行)它将不起作用。
data= []
sql = ( "SELECT id_student, class,name," +
" ROW_NUMBER() OVER (PARTITION BY class ORDER BY class ASC) row_num," +
"FROM" +
" [project_name.dataset.student_master]" +
"WHERE not class = " + element['class']
)
query = client.run_sync_query(sql)
query.timeout_ms = 20000
query.run()
for row in query.rows:
data.append(row)
return data
解决方案
通过查询公共数据集,我能够收集 200,000 多行,并使用计数器变量进行验证:
query_job = client.query("""
SELECT ROW_NUMBER() OVER (PARTITION BY token_address ORDER BY token_address ASC) as row_number,token_address
FROM `bigquery-public-data.ethereum_blockchain.token_transfers`
WHERE token_address = '0x001575786dfa7b9d9d1324ec308785738f80a951'
ORDER BY 1
""")
contador = 0
for row in query_job:
contador += 1
print(contador,row)
推荐阅读
- python-3.x - 在 Docker 中运行 Airflow 时没有名为“airflow.configuration”的模块
- postgresql - 在简单的 postgres 和 timescaleDB 查询性能测试中没有看到任何提升?
- java - 向上转换对象时,哪些部分引用父对象,哪些部分引用子对象?
- html - 如何在角垫表中将“搜索”框对齐到右侧?
- angular - Angular firebase 用户身份验证错误(类型错误)
- ruby-on-rails - 在 Rails 中,将字符串从 date_select 转换为 Date
- android - 错误:指定的孩子已经有一个父母。在进行拖放时,您必须首先在孩子的父母上调用 removeView()
- python - 如何在opencv-cv2(Pycharm和macOS)中解决“退出代码139(被信号11:SIGSEGV中断)的进程完成”?
- python - 如何根据类的对象的初始化参数在python中为类添加基类(/父类)
- java - blaze 持久性是否支持实体到哈希图的转换