Neal Richardson created ARROW-8867:
--------------------------------------
Summary: [R] Support converting POSIXlt type; named lists in
general
Key: ARROW-8867
URL: https://issues.apache.org/jira/browse/ARROW-8867
Project: Apache Arrow
Issue Type: New Feature
Components: R
Reporter: Neal Richardson
Fix For: 1.0.0
{code:r}
f <- as.POSIXlt(Sys.time() + 1:5)
Array$create(f)
# Error in Array__from_vector(x, type) :
# Unknown: List vector expecting elements vector of type double but got int32
{code}
Issue #1: POSIXlt type is a struct, essentially. But because it is not a
data.frame, we don't try to convert it to a struct. (We should probably convert
named lists to structs and not list type in general.)
If I trick the converter into thinking it is a data.frame, it will convert to
struct successfully.
{code:r}
class(f) <- c(class(f), "data.frame")
Array$create(f)
# StructArray
# <struct<sec: double, min: int32, hour: int32, mday: int32, mon: int32, year:
int32, wday: int32, yday: int32, isdst: int32, zone: string, gmtoff: int32>>
# ...
{code}
Issue #2: round trip won't work because the attributes that tell you that this
struct is a POSIXlt type, what time zone it is, etc., are dropped. This would
be helped by storing those attributes as custom_metadata on the Table. (We
could also implement it as an extension type, but if it's just for going back
and forth between R, would that have any benefit?)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)