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

Jonathan Keane commented on ARROW-13262:
----------------------------------------

Yeah, it's certainly a bit of an edge case, and might not be worth unscoping or 
trying to error more gracefully. But what I find a bit surprising is that I 
expected (in this case, at least) that when it pulled into R it would evaluate 
correctly since at that point it should be standard dplyr-on-data.frame.

This works:
{code}
> arrow_table %>%
+   collect() %>% 
+   transmute(stringr::str_c(x, y, sep = " "))
# A tibble: 3 x 1
  `stringr::str_c(x, y, sep = " ")`
  <chr>                            
1 NA                               
2 NA                               
3 f i   
{code}

But if transmute is above the collect it does not. 

> [R] Support namespacing of function maps?
> -----------------------------------------
>
>                 Key: ARROW-13262
>                 URL: https://issues.apache.org/jira/browse/ARROW-13262
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: R
>            Reporter: Jonathan Keane
>            Priority: Major
>
> With our NSE function map setup, we translate various functions into Arrow 
> equivalents:
> {code}
> library(arrow)
> library(dplyr)
> arrow_table <- Table$create(tibble::tibble(
>   v = c("A", "B", "C"),
>   w = c("a", "b", "c"),
>   x = c("d", NA_character_, "f"),
>   y = c(NA_character_, "h", "i"),
>   z = c(1.1, 2.2, NA)
> ))
> arrow_table %>%
>   transmute(str_c(x, y, sep = " ")) %>%
>   collect()
> #> # A tibble: 3 x 1
> #>   `str_c(x, y, sep = " ")`
> #>   <chr>                   
> #> 1 <NA>                    
> #> 2 <NA>                    
> #> 3 f i
> {code}
> Which is great, however if the code that is being used uses the `sringr::` 
> namespace prefix this errors:
> {code}
> arrow_table %>%
>   transmute(stringr::str_c(x, y, sep = " ")) %>%
>   collect()
> #> Warning: Expression stringr::str_c(x, y, sep = " ") not supported in Arrow;
> #> pulling data into R
> #> Error: Problem with `mutate()` input `..1`.
> #> ℹ `..1 = ..1`.
> #> x object 'x' not found
> {code}
> Should we support this (basically *also* translate {{stringr::str_c()}} to 
> what we have for {{str_c()}})? Or warn/error more clearly what happened if we 
> don't support any namespace prefixed functions? Something else?



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

Reply via email to