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

[C++] Cast fixed size list to compatible fixed size list type (other values type, other field name) #30955

Closed
asfimport opened this issue Jan 27, 2022 · 2 comments

Comments

@asfimport
Copy link
Collaborator

Casting a FixedSizeListArray to a compatible type but only a different field name isn't implemented:

>>> my_type = pa.list_(pa.field("element", pa.int64()), 2)
>>> arr = pa.FixedSizeListArray.from_arrays(pa.array([1, 2, 3, 4, 5, 6]), 2)
>>> arr.type
FixedSizeListType(fixed_size_list<item: int64>[2])
>>> my_type
FixedSizeListType(fixed_size_list<element: int64>[2])

>>> arr.cast(my_type)
...
ArrowNotImplementedError: Unsupported cast from fixed_size_list<item: int64>[2] to fixed_size_list using function cast_fixed_size_list

While the similar operation with a variable sized list actually works:

>>> my_type = pa.list_(pa.field("element", pa.int64()))
>>> arr = pa.array([[1, 2], [3, 4]], pa.list_(pa.int64()))
>>> arr.type
ListType(list<item: int64>)
>>> arr.cast(my_type).type
ListType(list<element: int64>)

Reporter: Joris Van den Bossche / @jorisvandenbossche
Assignee: Kshiteej K / @kshitij12345

PRs and other links:

Note: This issue was originally created as ARROW-15479. Please see the migration documentation for further details.

@asfimport
Copy link
Collaborator Author

Joris Van den Bossche / @jorisvandenbossche:
Also simply casting to a different but compatible type (but same field names) doesn't work:

>>> arr = pa.FixedSizeListArray.from_arrays(pa.array([1, 2, 3, 4, 5, 6]), 2)
>>> arr.type
FixedSizeListType(fixed_size_list<item: int64>[2])
>> arr.cast(pa.list_(pa.float64(), 2))
...
ArrowNotImplementedError: Unsupported cast from fixed_size_list<item: int64>[2] to fixed_size_list using function cast_fixed_size_list

And again this works for variable sized list.

@asfimport
Copy link
Collaborator Author

David Li / @lidavidm:
Issue resolved by pull request 14181
#14181

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant