You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[R] [parquet] Cannot load chunked large_list<dict> from parquet file #45087
changed the title [-]Cannot load chunked large_list<dict> from chunked parquet file[/-][+][R] [parquet] Cannot load chunked large_list<dict> from parquet file[/+]on Dec 20, 2024
Thanks for the really clear reprex, it made this easy to track down!
I had a go at reproducing this on main and it turns out to be the same underlying issue as #32723 rather than anything R-specific. pq.read_table() only works because it goes through the dataset API, which reads one row group at a time; if you call pq.ParquetFile("t.parquet").read() in Python you get the exact same error as R does. read_parquet() in R calls ReadTable(), which reads all the row groups in one go, and the dictionary leaf comes back as one chunk per row group, which the list reader can't handle yet.
In the meantime, open_dataset("t.parquet") |> dplyr::collect() should work fine for you, as it takes the same path as pq.read_table().
I've reopened #32723 as that's where the fix needs to happen, so I'm going to close this one as a duplicate, but do shout if the workaround doesn't do what you need.
Activity
[-]Cannot load chunked large_list<dict> from chunked parquet file[/-][+][R] [parquet] Cannot load chunked large_list<dict> from parquet file[/+]thisisnic commentedon Oct 4, 2026
Thanks for the really clear reprex, it made this easy to track down!
I had a go at reproducing this on main and it turns out to be the same underlying issue as #32723 rather than anything R-specific.
pq.read_table()only works because it goes through the dataset API, which reads one row group at a time; if you callpq.ParquetFile("t.parquet").read()in Python you get the exact same error as R does.read_parquet()in R callsReadTable(), which reads all the row groups in one go, and the dictionary leaf comes back as one chunk per row group, which the list reader can't handle yet.In the meantime,
open_dataset("t.parquet") |> dplyr::collect()should work fine for you, as it takes the same path aspq.read_table().I've reopened #32723 as that's where the fix needs to happen, so I'm going to close this one as a duplicate, but do shout if the workaround doesn't do what you need.