server: /load with backend=polars pages a random 1M-row sample, shuffled, when the file has more rows
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Start with buckaroo/server/data_loading_polars.py:40, buckaroo/dataflow/dataflow.py:420, and buckaroo/dataflow/dataflow_extras.py:68; trace how pre_stats_sample affects the dataflow's raw frame. Reproduce with the issue's 1.2M-row example and check the /load response. Done means the grid pages through the full frame in file order, while any stats sampling does not replace that frame.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
/load with backend: "polars" pages through a random 1M-row sample, in shuffled order, when the file has more than 1M rows. Every row request, sort and search runs against the sample.
PolarsServerSampling.pre_limit = 1_000_000 (buckaroo/server/data_loading_polars.py:40) reads as a cap on the stats input, but CustomizableDataflow.__init__ passes pre_stats_sample(orig_df) in as the dataflow's raw frame (buckaroo/dataflow/dataflow.py:420), and pre_stats_sample calls df.sample(pre_limit) (buckaroo/dataflow/dataflow_extras.py:68). The sample becomes the table.
import polars as pl
from buckaroo.server.data_loading_polars import create_polars_dataflow
flow = create_polars_dataflow(pl.DataFrame({"row": range(1_200_000)}))
_, processed, _ = flow.widget_args_tuple
print(len(processed)) # 1000000
print(processed["row"].head(5).to_list()) # e.g. [297452, 366261, 578517, 947309, 607234]
Over the server, POST /load on a 1.2M-row parquet answers rows: 1200000, the initial_state carries df_meta: {filtered_rows: 1000000, total_rows: 1200000}, and the first infinite_resp has length: 1000000 with the rows out of file order.
Impact
tallyman would like to hand its grid a parquet path through /load instead of a xorq build through /load_expr. Its entries routinely pass 1M rows (the largest is 78,024,179). Each would show a random slice of its rows, out of order, and the summary stats would describe that slice.
Suggested fix
- Keep the frame the grid pages through whole.
pre_limit = FalseonPolarsServerSamplingdoes that, and is whatXorqInfiniteSamplingalready uses. - If stats on very large frames need a cap, sample only what
DFStatsClassreads and mark the stats as sampled, rather than replacingraw_df.
Context
Found while checking whether tallyman's grid can move from /load_expr to /load with backend: "polars". Reproduced on buckaroo 0.15.8; the same code is on main at 992fdb3.
The other gaps from the same check: #993, #994, #995, #996.
- Ngôn ngữ chính
- Python
- Star
- 685
- Fork
- 17
- Merge trung bình
- 1 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 29
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của buckaroo-data/buckaroo
-
Histograms JS
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
buckaroo-data/buckaroo#1089 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Histograms
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
buckaroo-data/buckaroo#1087 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Histograms
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
buckaroo-data/buckaroo#1086 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Histograms
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
buckaroo-data/buckaroo#1083 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Histograms
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
buckaroo-data/buckaroo#1082 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của buckaroo-data/buckaroo
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Graphify-Labs/graphify#4524 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
topoteretes/cognee#5982 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Patches of derivations with `__structuredAttrs` are ignoredCó thể đã có người làm @KiaraGrouwstra đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 81/100
nix-community/vulnix#184 ·
-
New InternshipĐang mởnew_internship
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
aws-samples/sample-per-model-bedrock#295 ·
Maintainer thường phản hồi trong vòng 1 ngày