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

Neal Richardson commented on ARROW-18244:
-----------------------------------------

I'm not sure that's a valid use of string replacement since that's replacing 
substrings into the elements of the character vector, not necessarily replacing 
the entire element (ifelse is what you want for that), but we can detect and 
reject that case. Could you please open a new issue for that? Thanks!

> [R] `mutate(x2=ifelse(x=='',NA,x))` Error: Function 'if_else' has no kernel 
> matching input types 
> -------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-18244
>                 URL: https://issues.apache.org/jira/browse/ARROW-18244
>             Project: Apache Arrow
>          Issue Type: Bug
>            Reporter: Lucas Mation
>            Assignee: Neal Richardson
>            Priority: Major
>             Fix For: 11.0.0
>
>
>  
> ```
> q <- data.table(x=c('','30111976','01011976'))
> q %>% write_dataset('q')
> q2 <- 'q' %>% open_dataset %>% mutate(x2=ifelse(x=='',NA,x)) %>% collect
> Error in `collect()`:
> ! NotImplemented: Function 'if_else' has no kernel matching input types 
> (bool, bool, string)
> Run `rlang::last_error()` to see where the error occurred.
> ```
> In [Functions available in Arrow dplyr 
> queries|https://arrow.apache.org/docs/r/reference/acero.html] it is stated 
> that ifelse() is available, but the error above suggests otherwise.
> Update, "str_replace" is another function that is supposedly available in 
> 10.0.0 but is not (or does not seem to be):
> ```
> q2 <- 'q' %>% open_dataset %>% mutate(x2=x %>% str_replace('',NA)) %>% collect
> Error: Expression x %>% str_replace("", NA) not supported in Arrow
> Call collect() first to pull data into R.
> ```
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to