Describe the enhancement requested
Python3.10.16 (main, Dec32024, 17:27:57) [Clang16.0.0 (clang-1600.0.26.4)]
Type'copyright', 'credits'or'license'formoreinformationIPython8.31.0--AnenhancedInteractivePython. Type'?'forhelp.
In [1]: importpyarrowaspa
...: importuuid
...: ...: arr_table=pa.Table.from_pydict(
...: {
...: "uuid": [
...: uuid.UUID("00000000-0000-0000-0000-000000000000").bytes,
...: uuid.UUID("11111111-1111-1111-1111-111111111111").bytes,
...: ],
...: },
...: schema=pa.schema(
...: [
...: pa.field("uuid", pa.uuid(), nullable=False),
...: ]
...: ),
...: )
...: ...: arr_table.group_by('uuid').aggregate([])
---------------------------------------------------------------------------ArrowNotImplementedErrorTraceback (mostrecentcalllast)
CellIn[1], line182importuuid4arr_table=pa.Table.from_pydict(
5 {
6"uuid": [
(...)
15 ),
16 )
--->18arr_table.group_by('uuid').aggregate([])
File/opt/homebrew/lib/python3.10/site-packages/pyarrow/table.pxi:6560, inpyarrow.lib.TableGroupBy.aggregate()
File/opt/homebrew/lib/python3.10/site-packages/pyarrow/acero.py:410, in_group_by(table, aggregates, keys, use_threads)
404def_group_by(table, aggregates, keys, use_threads=True):
406decl=Declaration.from_sequence([
407Declaration("table_source", TableSourceNodeOptions(table)),
408Declaration("aggregate", AggregateNodeOptions(aggregates, keys=keys))
409 ])
-->410returndecl.to_table(use_threads=use_threads)
File/opt/homebrew/lib/python3.10/site-packages/pyarrow/_acero.pyx:590, inpyarrow._acero.Declaration.to_table()
File/opt/homebrew/lib/python3.10/site-packages/pyarrow/error.pxi:155, inpyarrow.lib.pyarrow_internal_check_status()
File/opt/homebrew/lib/python3.10/site-packages/pyarrow/error.pxi:92, inpyarrow.lib.check_status()
ArrowNotImplementedError: Keysoftypeextension<arrow.uuid>Looking at the stacktrace, I think we've need to change something here. The UUID is just a fixed with column under the hood, so I think we can re-use that logic.
Thoughts from the Arrow maintainers?
Component(s)
Python
Describe the enhancement requested
Looking at the stacktrace, I think we've need to change something here. The UUID is just a fixed with column under the hood, so I think we can re-use that logic.
Thoughts from the Arrow maintainers?
Component(s)
Python