[ 
https://issues.apache.org/jira/browse/ARROW-2774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antoine Pitrou updated ARROW-2774:
----------------------------------
    Summary: [Python] Implement pa.array() with type=union type  (was: [Python] 
Generate Unions when inferring types)

> [Python] Implement pa.array() with type=union type
> --------------------------------------------------
>
>                 Key: ARROW-2774
>                 URL: https://issues.apache.org/jira/browse/ARROW-2774
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Python
>            Reporter: Wes McKinney
>            Priority: Major
>
> It would be useful to be able to generate unions during type inference:
> {code}
> In [11]: pa.array([{'a': 1, 'b': 'string'}, {'b': 2}])
> ---------------------------------------------------------------------------
> ArrowTypeError                            Traceback (most recent call last)
> <ipython-input-11-c554b698271b> in <module>()
> ----> 1 pa.array([{'a': 1, 'b': 'string'}, {'b': 2}])
> ~/code/arrow/python/pyarrow/array.pxi in pyarrow.lib.array()
>     179         if mask is not None:
>     180             raise ValueError("Masks only supported with ndarray-like 
> inputs")
> --> 181         return _sequence_to_array(obj, size, type, pool)
>     182 
>     183 
> ~/code/arrow/python/pyarrow/array.pxi in pyarrow.lib._sequence_to_array()
>      24         if size is None:
>      25             with nogil:
> ---> 26                 check_status(ConvertPySequence(sequence, pool, &out))
>      27         else:
>      28             c_size = size
> ~/code/arrow/python/pyarrow/error.pxi in pyarrow.lib.check_status()
>      89             raise ArrowNotImplementedError(message)
>      90         elif status.IsTypeError():
> ---> 91             raise ArrowTypeError(message)
>      92         elif status.IsCapacityError():
>      93             raise ArrowCapacityError(message)
> ArrowTypeError: ../src/arrow/python/builtin_convert.cc:794 code: 
> AppendPySequence(seq, size, real_type, builder.get())
> ../src/arrow/python/iterators.h:60 code: func(value)
> ../src/arrow/python/builtin_convert.cc:619 code: 
> value_converters_[i]->AppendSingle(valueobj ? valueobj : Py_None)
> ../src/arrow/python/builtin_convert.cc:414 code: 
> internal::CIntFromPython(obj, &value)
> ../src/arrow/python/helpers.cc:259 code: CheckPyError()
> an integer is required (got type str)
> In [12]: pa.array([5, 'str', False])
> ---------------------------------------------------------------------------
> ArrowTypeError                            Traceback (most recent call last)
> <ipython-input-12-9e3343f08351> in <module>()
> ----> 1 pa.array([5, 'str', False])
> ~/code/arrow/python/pyarrow/array.pxi in pyarrow.lib.array()
>     179         if mask is not None:
>     180             raise ValueError("Masks only supported with ndarray-like 
> inputs")
> --> 181         return _sequence_to_array(obj, size, type, pool)
>     182 
>     183 
> ~/code/arrow/python/pyarrow/array.pxi in pyarrow.lib._sequence_to_array()
>      24         if size is None:
>      25             with nogil:
> ---> 26                 check_status(ConvertPySequence(sequence, pool, &out))
>      27         else:
>      28             c_size = size
> ~/code/arrow/python/pyarrow/error.pxi in pyarrow.lib.check_status()
>      89             raise ArrowNotImplementedError(message)
>      90         elif status.IsTypeError():
> ---> 91             raise ArrowTypeError(message)
>      92         elif status.IsCapacityError():
>      93             raise ArrowCapacityError(message)
> ArrowTypeError: ../src/arrow/python/builtin_convert.cc:794 code: 
> AppendPySequence(seq, size, real_type, builder.get())
> ../src/arrow/python/iterators.h:60 code: func(value)
> ../src/arrow/python/builtin_convert.cc:414 code: 
> internal::CIntFromPython(obj, &value)
> ../src/arrow/python/helpers.cc:259 code: CheckPyError()
> an integer is required (got type str)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to