Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grouping to list of struct is slower in 0.20.6 than in 0.20.5 and leads to out-of-memory eventually #15615

Closed
2 tasks done
karlwiese opened this issue Apr 12, 2024 · 12 comments · Fixed by #15628 or #15734
Closed
2 tasks done
Assignees
Labels
accepted Ready for implementation bug Something isn't working P-high Priority: high python Related to Python Polars

Comments

@karlwiese
Copy link

karlwiese commented Apr 12, 2024

Checks

  • I have checked that this issue has not already been reported.
  • I have confirmed this bug exists on the latest version of Polars.

Reproducible example

import random
import string
import time

import numpy as np
import polars as pl


print(pl.__version__)
limit = 10_000

lf1 = pl.LazyFrame({"index": range(limit)})
lf2 = pl.LazyFrame(
    {
        "index": np.repeat(range(limit), 2),
        "string": (
            "".join(random.sample(
                string.ascii_letters, random.randrange(10, 20, 1))
            ) for _ in range(limit * 2)
        ),
    }
)

lf2 = (
    lf2
    # .cast({"string": pl.Categorical})
    .group_by("index")
    .agg(pl.struct(pl.exclude("index")))
)

# lf2.collect().write_parquet("tmp.parquet")
# lf2 = pl.scan_parquet("tmp.parquet")

t0 = time.time()
lf1.join(lf2.head(limit), on="index").collect()
t1 = time.time()
print(t1 - t0)

Log output

### for version 0.20.05
0.20.5
join parallel: true
keys/aggregates are not partitionable: running default HASH AGGREGATION
INNER join dataframes finished
0.013990163803100586

### for version 0.20.06
0.20.6
join parallel: true
keys/aggregates are not partitionable: running default HASH AGGREGATION
INNER join dataframes finished
1.371825933456421

### for version 0.20.19
0.20.19
join parallel: true
keys/aggregates are not partitionable: running default HASH AGGREGATION
INNER join dataframes finished
0.3918569087982178

Issue description

As mentioned in #14201 I originally noticed the issue also due to OOM errors. In contrast to #14201, it is not intermittent but always occurs. It seems to me that the combination of putting strings in a struct and then grouping the structs to a list causes the issue.

I can confirm that casting the strings to categorial helps.

Further, I found that saving the frame after the struct to a file, reading it again and then doing the grouping also solves the problem.

I could come up with a reproducible example. Please see the above code. Be careful when testing and increasing the limit. It's definitely not linear.

From the Log output you can see that the latest version is faster than 0.20.6 but still much slower than 0.20.5. If you increase the limit you easily get high execution times for the latest version.

Expected behavior

Be as fast and efficient as in 0.20.5

Installed versions

--------Version info---------
Polars:               0.20.6
Index type:           UInt32
Platform:             macOS-13.6.5-arm64-arm-64bit
Python:               3.12.1 (v3.12.1:2305ca5144, Dec  7 2023, 17:23:38) [Clang 13.0.0 (clang-1300.0.29.30)]

----Optional dependencies----
adbc_driver_manager:  0.10.0
cloudpickle:          <not installed>
connectorx:           <not installed>
deltalake:            <not installed>
fsspec:               <not installed>
gevent:               <not installed>
hvplot:               <not installed>
matplotlib:           <not installed>
numpy:                1.26.2
openpyxl:             <not installed>
pandas:               <not installed>
pyarrow:              15.0.2
pydantic:             2.5.2
pyiceberg:            <not installed>
pyxlsb:               <not installed>
sqlalchemy:           2.0.29
xlsx2csv:             <not installed>
xlsxwriter:           <not installed>
@karlwiese karlwiese added bug Something isn't working needs triage Awaiting prioritization by a maintainer python Related to Python Polars labels Apr 12, 2024
@ritchie46
Copy link
Member

Is it only slower or does it never release memory? We did a huge rework of our internal string representation, so some stuff might be slower. More stuff sped up though.

@cmdlineluser
Copy link
Contributor

cmdlineluser commented Apr 12, 2024

Trying limit = 100_000 it takes 160 seconds on the latest version - memory usage stays as 4%.

On 0.20.5 it takes 0.5 seconds.

@ritchie46
Copy link
Member

Alright, that seems something quadratic. Will look into it.

@ritchie46 ritchie46 added P-high Priority: high and removed needs triage Awaiting prioritization by a maintainer labels Apr 12, 2024
@ritchie46 ritchie46 self-assigned this Apr 12, 2024
@karlwiese
Copy link
Author

karlwiese commented Apr 12, 2024

First of all, thank you for your amazing speed! The momentum here is awesome!

Is it only slower or does it never release memory? We did a huge rework of our internal string representation, so some stuff might be slower. More stuff sped up though.

My "production" code always goes OOM with version 0.20.6. In version 0.20.19 it just runs forever and keeps a certain memory level.

@deanm0000
Copy link
Collaborator

Completely unrelated to your issue but here's a little function I picked up from someone somewhere that generates random letters way faster than a comprehension with string.ascii_letters

def gen_long_string(str_len=10, n_rows=10_000_000):
    rng = np.random.default_rng()
    return rng.integers(low=96, high=122, size=n_rows * str_len, dtype="uint32").view(
        f"U{str_len}"
    )

if you want str_len to be random then you'd have to tweak that though.

@ritchie46
Copy link
Member

Relevant backtrace:

Thread 18 (Thread 0x7fffbddfe6c0 (LWP 30603) "polars-1"):
#0  0x00007ffff3155961 in polars_arrow::buffer::immutable::Buffer<u8>::as_slice<u8> (self=0x7fff70bb4488) at crates/polars-arrow/src/buffer/immutable.rs:118
#1  0x00007ffff3159dce in polars_arrow::buffer::immutable::{impl#9}::deref<u8> (self=0x7fff70bb4488) at crates/polars-arrow/src/buffer/immutable.rs:283
#2  0x00007ffff32b366b in polars_arrow::array::growable::binview::{impl#0}::hash<ahash::fallback_hash::AHasher> (self=0x7fffbddf5040, state=0x7fffbddf4fd8) at crates/polars-arrow/src/array/growable/binview.rs:22
#3  0x00007ffff31e5d7f in indexmap::map::IndexMap<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState>::hash<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, polars_arrow::array::growable::binview::BufferKey> (self=0x7fffbddf5838, key=0x7fffbddf5040) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:530
#4  0x00007ffff31e59e5 in indexmap::map::IndexMap<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState>::insert_full<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState> (self=0x7fffbddf5838, key=..., value=()) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:414
#5  0x00007ffff31e5dd3 in indexmap::map::IndexMap<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState>::insert<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState> (self=0x7fffbddf5838, key=..., value=()) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:398
#6  0x00007ffff31e547c in indexmap::map::{impl#14}::extend::{closure#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>> () at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:1365
#7  0x00007ffff304e39e in core::iter::traits::iterator::Iterator::for_each::call::{closure#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{--Type <RET> for more, q to quit, c to continue without paging--
closure_env#1}<str>>>>>> (item=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:814
#8  0x00007ffff338b671 in core::iter::adapters::map::map_fold::{closure#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>> (acc=(), elt=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#9  0x00007ffff337c52c in core::ops::function::impls::{impl#3}::call_mut<((), polars_arrow::array::growable::binview::BufferKey), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (self=0x7fffbddf5200, args=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/ops/function.rs:294
#10 0x00007ffff33922c1 in core::iter::adapters::map::map_fold::{closure#0}<&polars_arrow::buffer::immutable::Buffer<u8>, polars_arrow::array::growable::binview::BufferKey, (), polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>, &mut core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (acc=(), elt=0x7fff70bb4488) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#11 0x00007ffff32141af in core::slice::iter::{impl#181}::fold<polars_arrow::buffer::immutable::Buffer<u8>, (), core::iter::adapters::map::map_fold::{closure_env#0}<&polars_arrow::buffer::immutable::Buffer<u8>, polars_arrow::array::growable::binview::BufferKey, (), polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>, &mut core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>> (self=..., init=(), f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/slice/iter/macros.rs:232
#12 0x00007ffff335b393 in core::iter::adapters::map::{impl#2}::fold<polars_arrow::array::growable::binview::BufferKey, core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>, (), &mut core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Itera--Type <RET> for more, q to quit, c to continue without paging-- 
tor::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (self=..., init=(), g=0x7fffbddf5588) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#13 0x00007ffff3569413 in core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (acc=(), iter=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/flatten.rs:665
#14 0x00007ffff356ab19 in core::iter::adapters::flatten::{impl#33}::iter_fold::flatten::{closure#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>> (acc=(), iter=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/flatten.rs:475
#15 0x00007ffff338a875 in core::iter::adapters::map::map_fold::{closure#0}<&&polars_arrow::array::binview::BinaryViewArrayGeneric<str>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>, core::iter::adapters::flatten::{impl#33}::iter_fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>>> (acc=(), elt=0x7fff70ac8620) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#16 0x00007ffff3211e3b in core::slice::iter::{impl#181}::fold<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>, (), core::iter::adapters::map::map_fold::{closure_env#0}<&&polars_arrow::array::binview::BinaryViewArrayGeneric<str>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>, core::iter::adapters::flatten::{impl#33}::iter_fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{clo--Type <RET> for more, q to quit, c to continue without paging--
sure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>>>> (self=..., init=(), f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/slice/iter/macros.rs:232
#17 0x00007ffff335cf03 in core::iter::adapters::map::{impl#2}::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>, (), core::iter::adapters::flatten::{impl#33}::iter_fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#18 0x00007ffff335683c in core::iter::adapters::fuse::{impl#3}::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, (), core::iter::adapters::flatten::{impl#33}::iter_fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>>> (self=..., acc=(), fold=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/fuse.rs:98
#19 0x00007ffff356a951 in core::iter::adapters::flatten::FlattenCompat<core::iter::adapters::map::Map<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>>::iter_fold<core::iter::adapters::map::Map<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::flatten::{impl#35}::fold::flatten::{closure_env#0}<core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>--Type <RET> for more, q to quit, c to continue without paging--
>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>>> (self=..., acc=(), fold=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/flatten.rs:482
#20 0x00007ffff3569397 in core::iter::adapters::flatten::{impl#35}::fold<core::iter::adapters::map::Map<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (self=..., init=(), fold=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/flatten.rs:668
#21 0x00007ffff35692b1 in core::iter::adapters::flatten::{impl#3}::fold<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (polars_arrow::array::growable::binview::BufferKey, ()), (), indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>>> (self=..., init=(), fold=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/flatten.rs:89
#22 0x00007ffff3361a6b in core::iter::adapters::map::{impl#2}::fold<(polars_arrow::array::growable::binview::BufferKey, ()), core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>, (), core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<(polars_arrow::array::growable::binview::BufferKey, ()), indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#23 0x00007ffff3385249 in core::iter::traits::iterator::Iterator::for_each<core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>, indexmap::map::{impl#14}::extend::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryVi--Type <RET> for more, q to quit, c to continue without paging--
ewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>>> (self=..., f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:817
#24 0x00007ffff31e528b in indexmap::map::{impl#14}::extend<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>> (self=0x7fffbddf5838, iterable=...) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:1364
#25 0x00007ffff31e56e3 in indexmap::map::{impl#12}::from_iter<polars_arrow::array::growable::binview::BufferKey, (), ahash::random_state::RandomState, core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::{impl#9}::from_iter::{closure_env#0}<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>>>> (iterable=...) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/map.rs:1312
#26 0x00007ffff356479b in indexmap::set::{impl#9}::from_iter<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState, core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>> (iterable=...) at /home/ritchie46/.cargo/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/set.rs:994
#27 0x00007ffff356a6ce in core::iter::traits::iterator::Iterator::collect<core::iter::adapters::flatten::FlatMap<core::slice::iter::Iter<&polars_arrow::array::binview::BinaryViewArrayGeneric<str>>, core::iter::adapters::map::Map<core::slice::iter::Iter<polars_arrow::buffer::immutable::Buffer<u8>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure#1}::{closure_env#0}<str>>, polars_arrow::array::growable::binview::{impl#3}::new::{closure_env#1}<str>>, indexmap::set::IndexSet<polars_arrow::array::growable::binview::BufferKey, ahash::random_state::RandomState>> (self=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:2003
#28 0x00007ffff32b3883 in polars_arrow::array::growable::binview::GrowableBinaryViewArray<str>::new<str> (arrays=..., capacity=20000) at crates/polars-arrow/src/array/growable/binview.rs:65
#29 0x00007ffff316d67f in polars_arrow::array::growable::make_growable (arrays=..., use_validity=false, capacity=20000) at crates/polars-arrow/src/array/growable/mod.rs:141
#30 0x00007ffff354309a in polars_arrow::array::growable::structure::{impl#0}::new::{closure#2} (i=0) at crates/polars-arrow/src/array/growable/structure.rs:38
#31 0x00007ffff338af4b in core::iter::adapters::map::map_fold::{closure#0}<usize, alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, (), polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>>>> (acc=(), elt=0) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#32 0x00007ffff31e4465 in core::iter::traits::iterator::Iterator::fold<core::ops::range::Range<usize>, (), core::iter::adapters::map::map_fold::{closure_env#0}<usize, alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, (), polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>>>>> (self=..., init=(), f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:2587
#33 0x00007ffff336137f in core::iter::adapters::map::{impl#2}::fold<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}, (), core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#34 0x00007ffff3386e86 in core::iter::traits::iterator::Iterator::for_each<core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>>> (self=..., f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:817
#35 0x00007ffff3101157 in alloc::vec::Vec<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global>::extend_trusted<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>> (self=0x7fffbddf7c80, iterator=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/mod.rs:3047
#36 0x00007ffff314676b in alloc::vec::spec_extend::{impl#1}::spec_extend<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>, alloc::alloc::Global> (self=0x7fffbddf7c80, iterator=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_extend.rs:26
--Type <RET> for more, q to quit, c to continue without paging--
#37 0x00007ffff30e7a23 in alloc::vec::spec_from_iter_nested::{impl#1}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>> (iterator=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_from_iter_nested.rs:62
#38 0x00007ffff31492fe in alloc::vec::spec_from_iter::{impl#0}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>> (iterator=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_from_iter.rs:33
#39 0x00007ffff3141777 in alloc::vec::{impl#15}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>> (iter=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/mod.rs:2921
#40 0x00007ffff338076e in core::iter::traits::iterator::Iterator::collect<core::iter::adapters::map::Map<core::ops::range::Range<usize>, polars_arrow::array::growable::structure::{impl#0}::new::{closure_env#2}>, alloc::vec::Vec<alloc::boxed::Box<dyn polars_arrow::array::growable::Growable, alloc::alloc::Global>, alloc::alloc::Global>> (self=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:2003
#41 0x00007ffff3566e84 in polars_arrow::array::growable::structure::GrowableStruct::new (arrays=..., capacity=20000) at crates/polars-arrow/src/array/growable/structure.rs:36
#42 0x00007ffff316d411 in polars_arrow::array::growable::make_growable (arrays=..., use_validity=false, capacity=20000) at crates/polars-arrow/src/array/growable/mod.rs:125
#43 0x00007ffff34070f6 in polars_arrow::compute::concatenate::concatenate (arrays=...) at crates/polars-arrow/src/compute/concatenate.rs:38
#44 0x00007ffff325e5b8 in polars_arrow::legacy::array::list::AnonymousBuilder::finish (self=..., inner_dtype=...) at crates/polars-arrow/src/legacy/array/list.rs:153
#45 0x00007ffff13ffbb0 in polars_arrow::array::static_array_collect::{impl#26}::arr_from_iter_with_dtype<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::copied::Copied<core::slice::iter::Iter<u32>>, polars_core::chunked_array::ops::gather::gather_idx_array_unchecked::{closure_env#2}<polars_arrow::array::list::ListArray<i64>>>> (dtype=..., iter=...) at crates/polars-arrow/src/array/static_array_collect.rs:867
#46 0x00007ffff0dc0581 in polars_arrow::array::static_array_collect::ArrayFromIterDtype::arr_from_iter_trusted_with_dtype<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::copied::Copied<core::slice::iter::Iter<u32>>, polars_core::chunked_array::ops::gather::gather_idx_array_unchecked::{closure_env#2}<polars_arrow::array::list::ListArray<i64>>>> (dtype=..., iter=...) at crates/polars-arrow/src/array/static_array_collect.rs:28
#47 polars_arrow::array::static_array_collect::ArrayCollectIterExt::collect_arr_trusted_with_dtype<core::iter::adapters::map::Map<core::iter::adapters::copied::Copied<core::slice::iter::Iter<u32>>, polars_core::chunked_array::ops::gather::gather_idx_array_unchecked::{closure_env#2}<polars_arrow::array::list::ListArray<i64>>>, polars_arrow::array::list::ListArray<i64>> (self=..., dtype=...) at crates/polars-arrow/src/array/static_array_collect.rs:181
#48 polars_core::chunked_array::ops::gather::gather_idx_array_unchecked<polars_arrow::array::list::ListArray<i64>> (dtype=..., targets=..., has_nulls=false, indices=...) at crates/polars-core/src/chunked_array/ops/gather.rs:129
#49 0x00007ffff0dc6590 in polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure#0}<polars_core::datatypes::ListType> (idx_arr=0x7fff70a1e100) at crates/polars-core/src/chunked_array/ops/gather.rs:214
#50 0x00007ffff078b1df in core::iter::adapters::map::map_fold::{closure#0}<&polars_arrow::array::primitive::PrimitiveArray<u32>, polars_arrow::array::list::ListArray<i64>, (), polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>, core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>>> (acc=(), elt=0x7fff70a1e100) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#51 0x00007ffff07b1241 in core::iter::adapters::map::map_fold::{closure#0}<&alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, &polars_arrow::array::primitive::PrimitiveArray<u32>, (), polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>, core::iter::adapters::map::map_fold::{closure_env#0}<&polars_arrow::array::primitive::PrimitiveArray<u32>, polars_arrow::array::list::ListArray<i64>, (), polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>, core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::o--Type <RET> for more, q to quit, c to continue without paging--
ps::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>>>> (acc=(), elt=0x7fffbd014010) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:89
#52 0x00007ffff0bb6f3c in core::slice::iter::{impl#181}::fold<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), core::iter::adapters::map::map_fold::{closure_env#0}<&alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, &polars_arrow::array::primitive::PrimitiveArray<u32>, (), polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>, core::iter::adapters::map::map_fold::{closure_env#0}<&polars_arrow::array::primitive::PrimitiveArray<u32>, polars_arrow::array::list::ListArray<i64>, (), polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>, core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>>>>> (self=..., init=(), f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/slice/iter/macros.rs:232
#53 0x00007ffff06847c9 in core::iter::adapters::map::{impl#2}::fold<&polars_arrow::array::primitive::PrimitiveArray<u32>, core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>, (), core::iter::adapters::map::map_fold::{closure_env#0}<&polars_arrow::array::primitive::PrimitiveArray<u32>, polars_arrow::array::list::ListArray<i64>, (), polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>, core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#54 0x00007ffff068591f in core::iter::adapters::map::{impl#2}::fold<polars_arrow::array::list::ListArray<i64>, core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>, (), core::iter::adapters::map::map_fold::{closure_env#0}<polars_arrow::array::list::ListArray<i64>, alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, (), polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#55 0x00007ffff06635fd in core::iter::adapters::map::{impl#2}::fold<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>, (), core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}--Type <RET> for more, q to quit, c to continue without paging--
::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>>> (self=..., init=(), g=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/adapters/map.rs:129
#56 0x00007ffff072ff06 in core::iter::traits::iterator::Iterator::for_each<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>, alloc::vec::{impl#20}::extend_trusted::{closure_env#0}<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>>> (self=..., f=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:817
#57 0x00007ffff0f24287 in alloc::vec::Vec<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global>::extend_trusted<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>> (self=0x7fffbddfb690, iterator=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/mod.rs:3047
#58 0x00007ffff106093b in alloc::vec::spec_extend::{impl#1}::spec_extend<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>, alloc::alloc::Global> (self=0x7fffbddfb690, iterator=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_extend.rs:26
#59 0x00007ffff0e63393 in alloc::vec::spec_from_iter_nested::{impl#1}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>> (iterator=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_from_iter_nested.rs:62
#60 0x00007ffff10632ce in alloc::vec::spec_from_iter::{impl#0}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>> (iterator=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/spec_from_iter.rs:33
#61 0x00007ffff104dd27 in alloc::vec::{impl#15}::from_iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>> (iter=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/alloc/src/vec/mod.rs:2921
#62 0x00007ffff0718c8e in core::iter::traits::iterator::Iterator::collect<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>, polars_core::chunked_array::from::{impl#1}::from_chunk_iter_like::{closure_env#0}<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::--Type <RET> for more, q to quit, c to continue without paging--
downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>>>, alloc::vec::Vec<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>, alloc::alloc::Global>> (self=<error reading variable: Cannot access memory at address 0x12>) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/iter/traits/iterator.rs:2003
#63 0x00007ffff0cd0e8c in polars_core::chunked_array::ChunkedArray<polars_core::datatypes::ListType>::from_chunk_iter_like<polars_core::datatypes::ListType, core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::boxed::Box<dyn polars_arrow::array::Array, alloc::alloc::Global>>, polars_core::chunked_array::ops::downcast::{impl#1}::downcast_iter::{closure_env#0}<polars_core::datatypes::UInt32Type>>, polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked::{closure_env#0}<polars_core::datatypes::ListType>>> (ca=0x7fff70a03cd0, iter=...) at crates/polars-core/src/chunked_array/from.rs:126
#64 0x00007ffff0c46bf0 in polars_core::chunked_array::ops::gather::{impl#20}::take_unchecked<polars_core::datatypes::ListType> (self=0x7fff70a03cd0, indices=0x7fffbddfccc8) at crates/polars-core/src/chunked_array/ops/gather.rs:244
#65 0x00007ffff1449876 in polars_core::series::implementations::list::{impl#1}::take_unchecked (self=0x7fff70a03cd0, indices=0x7fffbddfccc8) at crates/polars-core/src/series/implementations/list.rs:97
#66 0x00007ffff28693cd in polars_core::frame::{impl#0}::take_unchecked_impl::{closure#0}::{closure#0} (s=0x7fffbd014030) at crates/polars-core/src/frame/mod.rs:1714
#67 0x00007ffff0d7c7f3 in core::ops::function::impls::{impl#0}::call<(&polars_core::series::Series), (dyn core::ops::function::Fn<(&polars_core::series::Series), Output=polars_core::series::Series> + core::marker::Send + core::marker::Sync)> (self=0x7fffbddfc3b8, args=...) at /rustc/c9f8f3438a8134a413aa5d4903e0196e44e37bbc/library/core/src/ops/function.rs:262
#68 0x00007ffff0d7ca9f in core::ops::function::impls::{impl#1}::call_mut<(&polars_core::series::Series), &(dyn core::ops::function::Fn<(&polars_core::series::Series), Output=polars_core::series::Series>

@karlwiese
Copy link
Author

Hey! I can still create a quadratic behavior. Should I open a new issue or is it fine re-using this one?

import time

import numpy as np
import polars as pl


def gen_long_string(str_len, n_rows):
    rng = np.random.default_rng()
    return rng.integers(low=96, high=122, size=n_rows * str_len, dtype="uint32").view(
        f"U{str_len}"
    )

print(pl.__version__)
limit = 30_000

lf1 = pl.LazyFrame({"index1": np.repeat(range(int(limit / 2)), 2), "index2": range(limit)})
lf2 = pl.LazyFrame(
    {
        "index2": np.repeat(range(limit), 2),
        "string": gen_long_string(15, limit * 2),
    }
)

lf2 = lf2.group_by("index2").agg(pl.struct(pl.exclude(["index1", "index2"])))

lf1 = lf1.join(lf2, on="index2")  # this line is now fast and was previously slow (<0.20.20)

t0 = time.time()
(
    lf1
    .group_by("index1")
    .agg(pl.struct(pl.exclude(["index1"])))
    .collect()
)
t1 = time.time()
print(t1 - t0)

It prints around 5 seconds for 0.20.21 and 0.1 seconds for 0.20.5.

I observed different behavior in my "production" code. While it runs the memory slowly increases instead of staying at a certain level.

@cmdlineluser
Copy link
Contributor

I can reproduce this on main.

As this is a p-high issue - tagging @ritchie46 seems appropriate.

@ritchie46 ritchie46 reopened this Apr 17, 2024
@ritchie46
Copy link
Member

Will take a look tomorrow.

@karlwiese
Copy link
Author

Hey! Thank you for the extremely fast handling of the issue so far. And sorry to bother you again.

I see OOM issues now after the fix of the quadratic growable.

If I profile the exact same code as above with memory_profiler I get much higher memory usage with 0.20.22 compared to 0.20.5.

I searched for out of memory issues but reading through them they seem not related.

Should I create another issue or is it fine to re-use this one?

Code and output
import time

import numpy as np
import polars as pl
from memory_profiler import profile


@profile
def run():
    print(pl.__version__)
    limit = 500_000
    print(limit)

    def gen_long_string(str_len, n_rows):
        rng = np.random.default_rng()
        return rng.integers(low=96, high=122, size=n_rows * str_len, dtype="uint32").view(
            f"U{str_len}"
        )

    lf1 = pl.LazyFrame({"index1": np.repeat(range(int(limit / 2)), 2), "index2": range(limit)})
    lf2 = pl.LazyFrame(
        {
            "index2": np.repeat(range(limit), 2),
            "string": gen_long_string(15, limit * 2),
        }
    )

    lf2 = lf2.group_by("index2").agg(pl.struct(pl.exclude(["index1", "index2"])))

    lf1 = lf1.join(lf2, on="index2")  # this line is now fast and was previously slow (<0.20.20)

    t0 = time.time()
    (
        lf1
        .group_by("index1")
        .agg(pl.struct(pl.exclude(["index1"])))
        .collect()  # this line is now fast and was previously slow (<0.20.22) but uses a lot of memory
    )
    t1 = time.time()
    print(t1 - t0)


if __name__ == "__main__":
    run()

Output for 0.20.5

0.20.5
500000
keys/aggregates are not partitionable: running default HASH AGGREGATION
join parallel: true
keys/aggregates are not partitionable: running default HASH AGGREGATION
INNER join dataframes finished
1.6011829376220703

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    71    119.2 MiB    119.2 MiB           1   @profile
    72                                         def run_min_old():
    73    119.2 MiB      0.0 MiB           1       print(pl.__version__)
    74    119.2 MiB      0.0 MiB           1       limit = 500_000
    75    119.2 MiB      0.0 MiB           1       print(limit)
    76                                         
    77    152.7 MiB      0.0 MiB           2       def gen_long_string(str_len, n_rows):
    78    152.7 MiB      0.0 MiB           1           rng = np.random.default_rng()
    79    210.1 MiB     57.3 MiB           2           return rng.integers(low=96, high=122, size=n_rows * str_len, dtype="uint32").view(
    80    210.1 MiB      0.0 MiB           1               f"U{str_len}"
    81                                                 )
    82                                         
    83    137.7 MiB     18.5 MiB           1       lf1 = pl.LazyFrame({"index1": np.repeat(range(int(limit / 2)), 2), "index2": range(limit)})
    84    240.6 MiB     30.6 MiB           2       lf2 = pl.LazyFrame(
    85    210.1 MiB      0.0 MiB           1           {
    86    152.7 MiB     15.0 MiB           1               "index2": np.repeat(range(limit), 2),
    87    210.1 MiB      0.0 MiB           1               "string": gen_long_string(15, limit * 2),
    88                                                 }
    89                                             )
    90                                         
    91    240.8 MiB      0.1 MiB           1       lf2 = lf2.group_by("index2").agg(pl.struct(pl.exclude(["index1", "index2"])))
    92                                         
    93    240.8 MiB      0.1 MiB           1       lf1 = lf1.join(lf2, on="index2")  # this line is now fast and was previously slow (<0.20.20)
    94                                         
    95    240.8 MiB      0.0 MiB           1       t0 = time.time()
    96                                             (
    97    240.8 MiB      0.0 MiB           1           lf1
    98    240.8 MiB      0.0 MiB           1           .group_by("index1")
    99    240.8 MiB      0.0 MiB           1           .agg(pl.struct(pl.exclude(["index1"])))
   100    477.1 MiB    236.3 MiB           1           .collect()
   101                                             )
   102    477.1 MiB      0.0 MiB           1       t1 = time.time()
   103    477.1 MiB      0.0 MiB           1       print(t1 - t0)

Output for 0.20.22

0.20.22
500000
keys/aggregates are not partitionable: running default HASH AGGREGATION
join parallel: true
keys/aggregates are not partitionable: running default HASH AGGREGATION
INNER join dataframes finished
2.1314499378204346

Line #    Mem usage    Increment  Occurrences   Line Contents
=============================================================
    71    118.8 MiB    118.8 MiB           1   @profile
    72                                         def run_min_old():
    73    118.8 MiB      0.0 MiB           1       print(pl.__version__)
    74    118.8 MiB      0.0 MiB           1       limit = 500_000
    75    118.8 MiB      0.0 MiB           1       print(limit)
    76                                         
    77    147.7 MiB      0.0 MiB           2       def gen_long_string(str_len, n_rows):
    78    147.7 MiB      0.0 MiB           1           rng = np.random.default_rng()
    79    205.0 MiB     57.3 MiB           2           return rng.integers(low=96, high=122, size=n_rows * str_len, dtype="uint32").view(
    80    205.0 MiB      0.0 MiB           1               f"U{str_len}"
    81                                                 )
    82                                         
    83    132.7 MiB     13.9 MiB           1       lf1 = pl.LazyFrame({"index1": np.repeat(range(int(limit / 2)), 2), "index2": range(limit)})
    84    258.5 MiB     53.5 MiB           2       lf2 = pl.LazyFrame(
    85    205.0 MiB      0.0 MiB           1           {
    86    147.7 MiB     15.0 MiB           1               "index2": np.repeat(range(limit), 2),
    87    205.0 MiB      0.0 MiB           1               "string": gen_long_string(15, limit * 2),
    88                                                 }
    89                                             )
    90                                         
    91    258.7 MiB      0.2 MiB           1       lf2 = lf2.group_by("index2").agg(pl.struct(pl.exclude(["index1", "index2"])))
    92                                         
    93    258.9 MiB      0.1 MiB           1       lf1 = lf1.join(lf2, on="index2")  # this line is now fast and was previously slow (<0.20.20)
    94                                         
    95    258.9 MiB      0.0 MiB           1       t0 = time.time()
    96                                             (
    97    258.9 MiB      0.0 MiB           1           lf1
    98    258.9 MiB      0.0 MiB           1           .group_by("index1")
    99    258.9 MiB      0.0 MiB           1           .agg(pl.struct(pl.exclude(["index1"])))
   100   5073.8 MiB   4814.9 MiB           1           .collect()
   101                                             )
   102   5073.8 MiB      0.0 MiB           1       t1 = time.time()
   103   5073.8 MiB      0.0 MiB           1       print(t1 - t0)

@cmdlineluser
Copy link
Contributor

cmdlineluser commented Apr 23, 2024

I would guess that creating a new issue may be the better option here?

From what I have experienced, it is less likely to get a response in a closed issue unless someone is tagged specifically.

I did file #15834 yesterday which is also a list of structs inside .agg() - it may be a minimal version of this.

(although I couldn't trigger it without quantile - so it may be unrelated)

@karlwiese
Copy link
Author

@cmdlineluser Thank you for your feedback. Looking at your issue I doubt it is related. Your example faults with minimal data as where my issues is related to the size of data. I'll create a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Ready for implementation bug Something isn't working P-high Priority: high python Related to Python Polars
Projects
Archived in project
5 participants