跳过内容

作为在Dataset查询上调用collect()的替代方法,您可以使用此函数访问Dataset中的RecordBatch流。这允许您在R中执行更复杂的操作,这些操作对数据块进行操作,而无需一次将整个数据集加载到内存中。您可以在dplyr管道中包含map_batches(),并在Arrow中对其之后的数据流执行额外的dplyr方法。

用法

map_batches(X, FUN, ..., .schema = NULL, .lazy = TRUE, .data.frame = NULL)

参数

X

一个Datasetarrow_dplyr_query对象,由Dataset上的dplyr方法返回。

FUN

要应用于每个批次的函数或purrr风格的lambda表达式。它必须返回一个RecordBatch或可以通过`as_record_batch()`强制转换为RecordBatch的对象。

...

传递给FUN的附加参数

.schema

一个可选的schema()。如果为NULL,则schema将从第一个批次推断。

.lazy

使用TRUE在从结果读取批次时惰性评估FUN;使用FALSE在返回读取器之前对所有批次评估FUN

.data.frame

已弃用的参数,已忽略

返回值

一个arrow_dplyr_query

详情

这是一个实验性功能,不建议用于生产环境。它也是单线程的,在R而不是C++中运行,因此它不会像核心Arrow方法那样快。