NVIDIA / NVIDIA/cudf

[FEA] Support grouped list aggregation and explode in cuDF-Polars

Open
#23,595 0 comments 0 reactions 0 assignees View on GitHub
cudf-polars feature request
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

Grouped list aggregation is not currently supported by the GPU engine, which also blocks workflows that aggregate values into lists and then explode them back into rows.

```python
def test_grouped_list_aggregation_explode(engine: GPUEngine) -> None:
lf = pl.LazyFrame(
{
"g": [1, 1, 2, 2, 2],
"x": [10, 20, 30, 40, 50],
}
)

q = lf.group_by("g").agg(pl.col("x")).explode("x")

assert_gpu_result_equal(q, engine=engine, check_row_order=False)
```

Related broad inventory issue: #23151

Contributor guide

Open the contributing guide

Research direction

Start with the grouped list aggregation and explode behavior described in test_grouped_list_aggregation_explode, then trace the cuDF-Polars GPU engine's grouped aggregation entry point. Use the shown LazyFrame query as the regression case and compare its result with the CPU engine; done means the GPU result passes assert_gpu_result_equal with row-order checking disabled. Related inventory issue: #23151.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.