跳转至内容

作为在 Dataset 查询上调用 collect() 的替代方法,您可以使用此函数访问 Dataset 中的 RecordBatch 流。这使您可以在 R 中执行更复杂的操作,这些操作对数据块进行操作,而无需一次将整个数据集保存在内存中。您可以将 map_batches() 包含在 dplyr 管道中,并在之后对 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 方法那样快。