[
https://issues.apache.org/jira/browse/ARROW-11780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17323820#comment-17323820
]
Alessandro Molina edited comment on ARROW-11780 at 4/16/21, 1:38 PM:
---------------------------------------------------------------------
The issue seems to origin from {{pyarrow_unwrap_array}} not recognising the two
values as arrays.
An empty shared_ptr is returned when unwrapping something that is not an array,
see
[https://github.com/apache/arrow/pull/827/files#diff-fd3f36df959d5f57664e7c4ca21a59515d5649679e188e77a220af490ab2b601R126-R132]
The two arrays are in fact {{ChunkedArray}}, thus the {{pyarrow_unwrap_array}}
doesn't deal with them.
{code:python}
<class 'pyarrow.lib.ChunkedArray'> [[1, 2, 3]]
{code}
I'm not sure on the impact over the rest of the codebase, but it seems it
would be more robust to have {{pyarrow_unwrap_array}} (and similar methods)
throwing an exception when they face unsupported types instead of returning
NULL values that might trigger an action at a distance that is then hard to
debug.
was (Author: amol-):
The issue seems to origin from {{pyarrow_unwrap_array}} not recognising the two
values as arrays.
An empty shared_ptr is returned when unwrapping something that is not an array,
see
[https://github.com/apache/arrow/pull/827/files#diff-fd3f36df959d5f57664e7c4ca21a59515d5649679e188e77a220af490ab2b601R126-R132]
The two arrays are in fact {{ChunkedArray}}, thus the{{ pyarrow_unwrap_array}}
doesn't deal with them.
{code:python}
<class 'pyarrow.lib.ChunkedArray'> [[1, 2, 3]]
I'm not sure on the impact over the rest of the codebase, but it seems it
would be more robust to have
{code}
{{pyarrow_unwrap_array}}
{code:python}
(and similar methods) throwing an exception when they face unsupported types
instead of returning NULL values that might trigger an action at a distance
that is then hard to debug.{code}
> [C++][Python] StructArray.from_arrays() crashes Python interpreter
> ------------------------------------------------------------------
>
> Key: ARROW-11780
> URL: https://issues.apache.org/jira/browse/ARROW-11780
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++, Python
> Affects Versions: 3.0.0
> Reporter: ARF
> Assignee: Weston Pace
> Priority: Major
>
> {{StructArray.from_arrays()}} crashes the Python interpreter without error
> message:
> {code:none}
> (test_pyarrow) Z:\test_pyarrow>python
> Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] ::
> Anaconda, Inc. on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyarrow as pa
> >>>
> >>> table = pa.Table.from_pydict({
> ... 'foo': pa.array([1, 2, 3]),
> ... 'bar': pa.array([4, 5, 6])
> ... })
> >>>
> >>> pa.StructArray.from_arrays([table['foo'], table['bar']], ['foo', 'bar'])
> (test_pyarrow) Z:\test_pyarrow>
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)