Joris Van den Bossche created ARROW-5295:
--------------------------------------------

             Summary: [Python] accept pyarrow values / scalars in constructor 
functions ?
                 Key: ARROW-5295
                 URL: https://issues.apache.org/jira/browse/ARROW-5295
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Python
            Reporter: Joris Van den Bossche


Currently, functions like \{{pyarrow.array}} don't accept pyarrow Arrays, or 
also not scalars of it:

{code}
In [42]: arr = pa.array([1, 2, 3])

In [43]: pa.array(arr)
...
ArrowInvalid: Could not convert 1 with type pyarrow.lib.Int64Value: did not 
recognize Python value type when inferring an Arrow data type

In [44]: pa.array(list(arr))
...
ArrowInvalid: Could not convert 1 with type pyarrow.lib.Int64Value: did not 
recognize Python value type when inferring an Arrow data type
{code}

Do we want to allow those / recognize those here? (the first case could even 
have a fastpath, as we don't need to do it element by element).

Also scalars are not supported:

{code}
In [46]: type(arr.sum())
Out[46]: pyarrow.lib.Int64Scalar

In [47]: pa.array([arr.sum()])
...
ArrowInvalid: Could not convert 6 with type pyarrow.lib.Int64Scalar: did not 
recognize Python value type when inferring an Arrow data type
{code}

And also in other functions we don't accept arrow scalars / values:

{code}
In [48]: string = pa.array(['a'])[0]

In [49]: type(string)
Out[49]: pyarrow.lib.StringValue

In [50]: pa.field(string, pa.int64())
...
TypeError: expected bytes, pyarrow.lib.StringValue found
{code}
 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to