In nanoarrow a 'schema' refers to a struct ArrowSchema
as defined in the
Arrow C Data interface. This data structure can be used to represent an
arrow::schema()
, an arrow::field()
, or an arrow::DataType
. Note that
in nanoarrow, an arrow::schema()
and a non-nullable arrow::struct()
are represented identically.
Usage
as_nanoarrow_schema(x, ...)
infer_nanoarrow_schema(x, ...)
nanoarrow_schema_parse(x, recursive = FALSE)
nanoarrow_schema_modify(x, new_values, validate = TRUE)
Examples
infer_nanoarrow_schema(integer())
#> <nanoarrow_schema int32>
#> $ format : chr "i"
#> $ name : chr ""
#> $ metadata : list()
#> $ flags : int 2
#> $ children : list()
#> $ dictionary: NULL
infer_nanoarrow_schema(data.frame(x = integer()))
#> <nanoarrow_schema struct>
#> $ format : chr "+s"
#> $ name : chr ""
#> $ metadata : list()
#> $ flags : int 0
#> $ children :List of 1
#> ..$ x:<nanoarrow_schema int32>
#> .. ..$ format : chr "i"
#> .. ..$ name : chr "x"
#> .. ..$ metadata : list()
#> .. ..$ flags : int 2
#> .. ..$ children : list()
#> .. ..$ dictionary: NULL
#> $ dictionary: NULL