You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Antoine Pitrou (Jira)" <ji...@apache.org> on 2020/04/23 13:07:00 UTC
[jira] [Created] (ARROW-8567) [Python] pa.array() sometimes ignore
"safe=False"
Antoine Pitrou created ARROW-8567:
-------------------------------------
Summary: [Python] pa.array() sometimes ignore "safe=False"
Key: ARROW-8567
URL: https://issues.apache.org/jira/browse/ARROW-8567
Project: Apache Arrow
Issue Type: Bug
Components: Python
Affects Versions: 0.17.0
Reporter: Antoine Pitrou
Generally, {{pa.array(data).cast(sometype, safe=...)}} is equivalent to
{{pa.array(data, sometype, safe=...)}}. Consider the following:
{code:python}
>>> pa.array([Decimal('12.34')]).cast(pa.int32(), safe=False)
<pyarrow.lib.Int32Array object at 0x7efbbd1556e0>
[
12
]
>>> pa.array([Decimal('12.34')], pa.int32(), safe=False)
<pyarrow.lib.Int32Array object at 0x7efbbd13dad0>
[
12
]
{code}
However, that is not always the case:
{code:python}
>>> pa.array([Decimal('1234')]).cast(pa.int8(), safe=False)
<pyarrow.lib.Int8Array object at 0x7efbbd18e4b0>
[
-46
]
>>> pa.array([Decimal('1234')], pa.int8(), safe=False)
Traceback (most recent call last):
...
ArrowInvalid: Value 1234 too large to fit in C integer type
{code}
I don't think this is very important: first because you can call cast() directly, second because the results are unusable anyway.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)