NVIDIA / NVIDIA/cudf

[FEA] Support `polars.Expr.str.find_many` in `cudf-polars`

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

Description

**Is your feature request related to a problem? Please describe.**
Today on `branch-25.08`, we lack support for [polars.Expr.str.find_many](https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.str.find_many.html). Running the example from the docs yields:
```
import polars as pl
engine = pl.GPUEngine(raise_on_fail=True)

df = pl.DataFrame(
{
"values": ["discontent", "rhapsody"],
"patterns": [
["winter", "disco", "onte", "discontent"],
["rhap", "ody", "coalesce"],
],
}
).lazy()
df = df.select(pl.col("values").str.find_many("patterns"))

res = df.collect(engine=engine)
print(res)

```

```
NotImplementedError: find_many'
```

**Describe the solution you'd like**
I'd like the above code to be able to execute using the polars GPU backend. This API returns a list where the indices are the positons of the starting characters of all the found patterns. This seems to be a bit of a mix of `cudf::strings::findall` and `cudf::strings::find_re`, and is also blocked on being able to return a `list[str]` dtype.

**Describe alternatives you've considered**
N/A

**Additional context**
https://github.com/rapidsai/cudf/issues/16480

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.