[ 
https://issues.apache.org/jira/browse/ARROW-11673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17330333#comment-17330333
 ] 

Joris Van den Bossche commented on ARROW-11673:
-----------------------------------------------

bq. What is the expected behavior when casting from a larger to a smaller type 
and the index overflows?

For a safe cast, I certainly expect that to raise an error. For plain integers 
it behaves like this:

{code}
In [6]: pa.array([1, 1000], "int64").cast("int8")
...
ArrowInvalid: Integer value 1000 not in range: -128 to 127

In [7]: pa.array([1, 1000], "int64").cast("int8", safe=False)
Out[7]: 
<pyarrow.lib.Int8Array object at 0x7f42ecdc69a0>
[
  1,
  -24
]
{code}

> [C++] Casting dictionary type to use different index type
> ---------------------------------------------------------
>
>                 Key: ARROW-11673
>                 URL: https://issues.apache.org/jira/browse/ARROW-11673
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Joris Van den Bossche
>            Assignee: Eduardo Ponce
>            Priority: Major
>
> It's currently not implemented to cast from one dictionary type to another 
> dictionary type to change the index type. 
> Small example:
> {code}
> In [2]: arr = pa.array(['a', 'b', 'a']).dictionary_encode()
> In [3]: arr.type
> Out[3]: DictionaryType(dictionary<values=string, indices=int32, ordered=0>)
> In [5]: arr.cast(pa.dictionary(pa.int8(), pa.string()))
> ...
> ArrowNotImplementedError: Unsupported cast from dictionary<values=string, 
> indices=int32, ordered=0> to dictionary<values=string, indices=int8, 
> ordered=0> (no available cast function for target type)
> ../src/arrow/compute/cast.cc:112  
> GetCastFunctionInternal(cast_options->to_type, args[0].type().get())
> {code}
> From 
> https://stackoverflow.com/questions/66223730/how-to-change-column-datatype-with-pyarrow



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

Reply via email to