[FEA] Support grouped list aggregation and explode in cuDF-Polars
- 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
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