将array_stream
转换为to
指定的类型。这是一个底层接口;大多数用户应该使用as.data.frame()
或as.vector()
,除非需要对转换进行更细粒度的控制。有关转换过程的详细信息,请参见convert_array()
;有关to
的默认推断,请参见infer_nanoarrow_ptype()
。
用法
convert_array_stream(array_stream, to = NULL, size = NULL, n = Inf)
collect_array_stream(array_stream, n = Inf, schema = NULL, validate = TRUE)
参数
- array_stream
- to
一个目标原型对象,描述了应将
array
转换为的类型,或NULL
以使用infer_nanoarrow_ptype()
返回的默认转换。或者,可以传递一个函数来执行作为array
和原型默认推断的函数的默认 ptype 的替代计算。- size
输出的确切大小(如果已知)。如果指定,可以使用效率稍高的实现来收集输出。
- n
从数组流中拉取的最大批次数。
- schema
一个nanoarrow_schema 或
NULL
以根据第一个模式进行猜测。- validate
使用
FALSE
跳过验证步骤(即,如果您知道数组有效)。
返回值
convert_array_stream()
: 一个类型为to
的 R 向量。collect_array_stream()
: 一个list()
的 nanoarrow_array
示例
stream <- as_nanoarrow_array_stream(data.frame(x = 1:5))
str(convert_array_stream(stream))
#> 'data.frame': 5 obs. of 1 variable:
#> $ x: int 1 2 3 4 5
str(convert_array_stream(stream, to = data.frame(x = double())))
#> 'data.frame': 0 obs. of 1 variable:
#> $ x: num
stream <- as_nanoarrow_array_stream(data.frame(x = 1:5))
collect_array_stream(stream)
#> [[1]]
#> <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
#>