S3 方法和用法
记录批次类似于数据框,许多您期望在 data.frame 上使用的方法都已为 RecordBatch 实现。这包括 [、[[、$、names、dim、nrow、ncol、head 和 tail。您还可以使用 as.data.frame() 将 Arrow 记录批次中的数据拉入 R 中。请参阅示例。
关于 $ 方法的一个注意事项:由于 RecordBatch 是一个 R6 对象,$ 也用于访问对象的 métodos(见下文)。方法优先于表的列。因此,即使表中有一个名为“Slice”的列,batch$Slice 也会返回“Slice”方法函数。
R6 方法
除了更 R 友好的 S3 方法之外,RecordBatch 对象还具有以下映射到底层 C++ 方法的 R6 方法
$Equals(other):如果other记录批次相等,则返回TRUE$column(i):从批次中按整数位置提取Array$column_name(i):按整数位置获取列名$names():获取所有列名(由names(batch)调用)$nbytes():记录批次元素消耗的总字节数$RenameColumns(value):设置所有列名(由names(batch) <- value调用)$GetColumnByName(name):按字符串名称提取Array$RemoveColumn(i):按整数位置从批次中删除列$SelectColumns(indices):返回一个包含所选列的新记录批次,表示为基于 0 的整数。$Slice(offset, length = NULL):创建一个从指定整数偏移量开始并持续给定长度的零拷贝视图,如果为NULL(默认值),则持续到表的末尾。$Take(i):返回一个RecordBatch,其中包含由整数(R 向量或 Arrow Array)i给出的位置的行。$Filter(i, keep_na = TRUE):返回一个RecordBatch,其中包含逻辑向量(或 Arrow 布尔 Array)i为TRUE的位置的行。$SortIndices(names, descending = FALSE):返回一个整数行位置的Array,可用于根据第一个命名列按升序或降序重新排列RecordBatch,并使用其他命名列来打破平局。descending可以是长度为一的逻辑向量,也可以是与names长度相同的逻辑向量。$serialize():返回一个适用于进程间通信的原始向量$cast(target_schema, safe = TRUE, options = cast_options(safe)):更改记录批次的架构。
还有一些活动的绑定
$num_columns$num_rows$schema$metadata:将Schema的键值元数据作为命名列表返回。通过赋值进行修改或替换 (batch$metadata <- new_metadata)。所有列表元素都强制转换为字符串。有关更多信息,请参阅schema()。$columns:返回Array列表