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)Arguments
- x
 An object to convert to a schema
- ...
 Passed to S3 methods
- recursive
 Use
TRUEto include achildrenmember when parsing schemas.- new_values
 New schema component to assign
- validate
 Use
FALSEto skip schema validation
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