You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Antoine Pitrou (Jira)" <ji...@apache.org> on 2021/03/22 17:19:01 UTC

[jira] [Commented] (ARROW-12042) [C++] Change or rationalize output of array_sort_indices on ChunkedArray

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

Antoine Pitrou commented on ARROW-12042:
----------------------------------------

I definitely don't see this in Python. This looks like a bug on the R side?
{code:python}
>>> arr = pa.chunked_array([[2, 1], [4, 3]])
>>> pc.sort_indices(arr)
<pyarrow.lib.UInt64Array object at 0x7f4e4a121c90>
[
  1,
  0,
  3,
  2
]
>>> arr.take(pc.sort_indices(arr))
<pyarrow.lib.ChunkedArray object at 0x7f4e4a11e170>
[
  [
    1,
    2,
    3,
    4
  ]
]
{code}


> [C++] Change or rationalize output of array_sort_indices on ChunkedArray
> ------------------------------------------------------------------------
>
>                 Key: ARROW-12042
>                 URL: https://issues.apache.org/jira/browse/ARROW-12042
>             Project: Apache Arrow
>          Issue Type: Task
>          Components: C++
>    Affects Versions: 3.0.0
>            Reporter: Ian Cook
>            Priority: Major
>
> Currently when the {{array_sort_indices}} compute function is called on a ChunkedArray of two or more Arrays, it returns a ChunkedArray of Arrays of _local_ sort indices for each Array. Demonstrating this with the R bindings (but note that these R examples will not run until ARROW-11703 is merged):
> {code:java}
> > x <- ChunkedArray$create(c(2L, 1L), c(4L, 3L))
> > arrow:::call_function("array_sort_indices", x, options = list(order = FALSE))
> ChunkedArray
> [
>   [
>     1,
>     0
>   ],
>   [
>     1,
>     0
>   ]
> ]
> {code}
> Compare to the {{sort_indices}} compute function which returns an Array of _global_ sort indices in this case:
> {code:java}
> > arrow:::call_function("sort_indices", x, options = list(names = "", orders = 0L))
> Array
> <uint64>
> [
>   1,
>   0,
>   3,
>   2
> ]{code}
> Is this behavior deliberate? If so, we should document it clearly. If not, we should change it.
> Note that the docs currently states that {{array_sort_indices}} only works on Arrays [https://arrow.apache.org/docs/cpp/compute.html#sorts-and-partitions] (see note (4)) but evidently that is not exactly correct.



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