Describe the bug, including details regarding any error messages, version, and platform.
When attempting to use a RunEndEncoded array with either a struct or a list, an exception is raised indicating that no matching kernel is available.
Steps to Reproduce:
Please run the following example code to reproduce the issue:
import pyarrow as pa
for data_type, values in [
[pa.struct([pa.field("age", pa.int32())]), {"age": 20}],
[pa.list_(pa.int32()), [20]]
]:
try:
schema = pa.schema([pa.field("data", pa.run_end_encoded(pa.int16(), data_type))])
data = [
{"data": values},
]
table = pa.Table.from_pylist(data, schema=schema)
except Exception as e:
print(f"Failed with {data_type} {e}")
Observed Output:
Failed with struct<age: int32> Function 'run_end_encode' has no kernel matching input types (struct<age: int32>)
Failed with list<item: int32> Function 'run_end_encode' has no kernel matching input types (list<item: int32>)
Expected Behavior:
The code should correctly create a RunEndEncoded array using both struct and list types without raising exceptions.
Environment:
- PyArrow version: 18.0.0.dev
- Python version: 3.12.5
- Platform: Mac OS X
Additional Context:
The failure seems to suggest that the run_end_encode function does not currently support struct or list types, but it's not explicitly documented whether this is intentional or an oversight.
Component(s)
Python
Describe the bug, including details regarding any error messages, version, and platform.
When attempting to use a
RunEndEncodedarray with either astructor alist, an exception is raised indicating that no matching kernel is available.Steps to Reproduce:
Please run the following example code to reproduce the issue:
Observed Output:
Expected Behavior:
The code should correctly create a
RunEndEncodedarray using bothstructandlisttypes without raising exceptions.Environment:
Additional Context:
The failure seems to suggest that the
run_end_encodefunction does not currently supportstructorlisttypes, but it's not explicitly documented whether this is intentional or an oversight.Component(s)
Python