跳到內容

作為在 Dataset 查詢中呼叫 collect() 的替代方案,您可以使用此函數來存取 DatasetRecordBatch 的流。這讓您可以在 R 中執行更複雜的操作,這些操作可以處理資料區塊,而無需一次將整個 Dataset 保存在記憶體中。您可以將 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 方法那樣快。