Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Recently two new types were added to the Arrow format that make it more suitable for certain types of operations on Lists
Specifically when doing filtering / take with List data, creating a new ListArray or LargeListArray requires copying the underlying lists to a new, packed buffer. The "ListView" was designed to solve this limitation and recently added to the Arrow spec.
Describe the solution you'd like
I would like to implement ListViewArray and LargeListViewArray following the spec:
The spec: https://arrow.apache.org/docs/format/Columnar.html#listview-layout
Initially, I would suggest we get the basic types in place:
Then as follow on PRs, add support to key kernels:
Describe alternatives you've considered
Additional context
This is similar in spirit to the StringViewArray and BinaryViewArray described in #5374
Tasks:
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Recently two new types were added to the Arrow format that make it more suitable for certain types of operations on Lists
Specifically when doing filtering / take with List data, creating a new
ListArrayorLargeListArrayrequires copying the underlying lists to a new, packed buffer. The "ListView" was designed to solve this limitation and recently added to the Arrow spec.Describe the solution you'd like
I would like to implement
ListViewArrayandLargeListViewArrayfollowing the spec:The spec: https://arrow.apache.org/docs/format/Columnar.html#listview-layout
Initially, I would suggest we get the basic types in place:
DataTypeArrayimplementations and layout and basic constructionThen as follow on PRs, add support to key kernels:
cast(to/from ListAray / LargeListArray)filter: Support more operations on ListView #8645take: Support more operations on ListView #8645Describe alternatives you've considered
Additional context
This is similar in spirit to the
StringViewArrayandBinaryViewArraydescribed in #5374Tasks:
ListViewArrayandLargeListViewArrayimplementation and layout and basic construction #5501ListViewin arrow-json #9340ListViewin sort kernel #9341ListViewsupport forinterleavekernel #9342ListViewinlengthkernel #9343ListViewin parquet arrow writer #9344