Any inputs on this please?
On Tue, May 2, 2023 at 10:03 AM Jerald Alex <[email protected]> wrote:
> Hi Experts,
>
> Can anyone please highlight if it is possible to cast struct to map type?
>
> I tried the following but it seems to be producing an error as below.
>
> pyarrow.lib.ArrowNotImplementedError: Unsupported cast from
> struct<first_name: string, last_name: string> to map using function cast_map
>
> Note: Snippet is just an example to show the problem.
>
> Code Snippet:
>
> table_schema = pa.schema([pa.field("id", pa.int32()), pa.field("names",
> pa.map_(pa.string(), pa.string()))])
>
> table_data = [{"id": 1,"names": {"first_name": "Tyler", "last_name":
> "Brady"}},
> {"id": 2,"names": {"first_name": "Walsh", "last_name": "Weaver"}}]
>
> tbl = pa.Table.from_pylist(table_data)
> print(tbl)
> print(tbl.cast(table_schema))
> print(tbl)
>
> Error :
>
> id: int64
> names: struct<first_name: string, last_name: string>
> child 0, first_name: string
> child 1, last_name: string
> ----
> id: [[1,2]]
> names: [
> -- is_valid: all not null
> -- child 0 type: string
> ["Tyler","Walsh"]
> -- child 1 type: string
> ["Brady","Weaver"]]
> Traceback (most recent call last):
> File "/Users/
> [email protected]/Documents/Github/HubOcean/demo/pyarrow_types.py",
> line 220, in <module>
> print(tbl.cast(table_schema))
> File "pyarrow/table.pxi", line 3489, in pyarrow.lib.Table.cast
> File "pyarrow/table.pxi", line 523, in pyarrow.lib.ChunkedArray.cast
> File "/Users/
> [email protected]/Library/Caches/pypoetry/virtualenvs/demo-LzMA3Hsd-py3.10/lib/python3.10/site-packages/pyarrow/compute.py",
> line 391, in cast
> return call_function("cast", [arr], options)
> File "pyarrow/_compute.pyx", line 560, in pyarrow._compute.call_function
> File "pyarrow/_compute.pyx", line 355, in pyarrow._compute.Function.call
> File "pyarrow/error.pxi", line 144, in
> pyarrow.lib.pyarrow_internal_check_status
> File "pyarrow/error.pxi", line 121, in pyarrow.lib.check_status
> pyarrow.lib.ArrowNotImplementedError: Unsupported cast from
> struct<first_name: string, last_name: string> to map using function cast_map
>
> Regards,
> Alex Vincent
>