[ https://issues.apache.org/jira/browse/ARROW-10640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17346972#comment-17346972 ]
David Li commented on ARROW-10640: ---------------------------------- I think to summarize the discussion (including from the PR), we can call this {{if_else}} which uses a Boolean mask to select from one of two input arrays/scalars. A null mask value outputs a null. A True mask value outputs the LHS scalar/corresponding value from the LHS array. A False mask value outputs the RHS scalar/corresponding value from the RHS value. Hence: {noformat} if_else([True, False, null], 1, 0) -> [1, 0, null] if_else We can file separate issues for CASE WHEN/choose.{noformat} > [C++] A "where" kernel to combine two arrays based on a mask > ------------------------------------------------------------ > > Key: ARROW-10640 > URL: https://issues.apache.org/jira/browse/ARROW-10640 > Project: Apache Arrow > Issue Type: New Feature > Components: C++ > Reporter: Joris Van den Bossche > Priority: Major > > (from discussion in ARROW-9489 with [~maartenbreddels]) > A general "where" kernel like {{np.where}} > (https://numpy.org/doc/stable/reference/generated/numpy.where.html) seems a > generally useful kernel to have, and could also help mimicking some other > python (setitem-like) operations. > The concrete use case in ARROW-9489 is to basically do a > {{fill_null(array[string], array[string])}} which could be expressed as > {{where(is_null(arr), arr2, arr)}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)