Update: I keep forgetting that R integers are translated into int32 (since R does not have int64). int64 -> duration is supported.
Would it make sense to support float -> duration or int32 -> duration?
======================
Currently it is not possible to directly create a duration object from a numeric one (for example through casting).
library(arrow)
a<-Array$create(32L)
a$cast(duration("s"))
#> Error: NotImplemented: Unsupported cast from int32 to duration using function cast_duration#> /Users/dragos/Documents/arrow/cpp/src/arrow/compute/function.cc:231 DispatchBest(&inputs)This underpins a lot of the date-time arithmetic in R, which support the conversion/ coercion of an integer to difftime (R's equivalent for duration), such as in the pipeline below.
library(arrow, warn.conflicts=FALSE)
#> See arrow_info() for available features
library(dplyr, warn.conflicts=FALSE)
library(lubridate, warn.conflicts=FALSE)
df<- tibble(time= as_datetime(c("2022-03-07 15:00:28", "2022-03-06 14:00:28"))) df#> # A tibble: 2 × 1#> time #> <dttm> #> 1 2022-03-07 15:00:28#> 2 2022-03-06 14:00:28df %>% mutate(time2=time+ seconds(2))
#> # A tibble: 2 × 2#> time time2 #> <dttm> <dttm> #> 1 2022-03-07 15:00:28 2022-03-07 15:00:30#> 2 2022-03-06 14:00:28 2022-03-06 14:00:30Reporter: Dragoș Moldovan-Grünfeld / @dragosmg
Related issues:
Note: This issue was originally created as ARROW-15862. Please see the migration documentation for further details.
Update: I keep forgetting that R integers are translated into int32 (since R does not have int64). int64 -> duration is supported.
Would it make sense to support float -> duration or int32 -> duration?
======================
Currently it is not possible to directly create a duration object from a numeric one (for example through casting).
This underpins a lot of the date-time arithmetic in R, which support the conversion/ coercion of an integer to difftime (R's equivalent for duration), such as in the pipeline below.
Reporter: Dragoș Moldovan-Grünfeld / @dragosmg
Related issues:
Note: This issue was originally created as ARROW-15862. Please see the migration documentation for further details.