跳至内容

在 nanoarrow 中,“数组”指的是 Arrow C 数据接口中的 struct ArrowArray 定义。在 R 层面上,我们附加了一个模式,这样在功能上,nanoarrow_array 类就可以像 arrow::Array 一样使用。请注意,在 nanoarrow 中,arrow::RecordBatch 和不可为空的 arrow::StructArray 的表示方式相同。

用法

as_nanoarrow_array(x, ..., schema = NULL)

参数

x

要转换为数组的对象

...

传递给 S3 方法

schema

一个可选的模式,用于强制转换为特定类型。默认为 infer_nanoarrow_schema()

返回值

一个 'nanoarrow_array' 类的对象

示例

(array <- as_nanoarrow_array(1:5))
#> <nanoarrow_array int32[5]>
#>  $ length    : int 5
#>  $ null_count: int 0
#>  $ offset    : int 0
#>  $ buffers   :List of 2
#>   ..$ :<nanoarrow_buffer validity<bool>[null] ``
#>   ..$ :<nanoarrow_buffer data<int32>[5][20 b]> `1 2 3 4 5`
#>  $ dictionary: NULL
#>  $ children  : list()
as.vector(array)
#> [1] 1 2 3 4 5

(array <- as_nanoarrow_array(data.frame(x = 1:5)))
#> <nanoarrow_array struct[5]>
#>  $ length    : int 5
#>  $ null_count: int 0
#>  $ offset    : int 0
#>  $ buffers   :List of 1
#>   ..$ :<nanoarrow_buffer validity<bool>[null] ``
#>  $ children  :List of 1
#>   ..$ x:<nanoarrow_array int32[5]>
#>   .. ..$ length    : int 5
#>   .. ..$ null_count: int 0
#>   .. ..$ offset    : int 0
#>   .. ..$ buffers   :List of 2
#>   .. .. ..$ :<nanoarrow_buffer validity<bool>[null] ``
#>   .. .. ..$ :<nanoarrow_buffer data<int32>[5][20 b]> `1 2 3 4 5`
#>   .. ..$ dictionary: NULL
#>   .. ..$ children  : list()
#>  $ dictionary: NULL
as.data.frame(array)
#>   x
#> 1 1
#> 2 2
#> 3 3
#> 4 4
#> 5 5