S3 方法和用法
RecordBatch 类似于数据帧,并且许多您期望在 data.frame
上使用的方法都已为 RecordBatch
实现。 这包括 [
, [[
, $
, names
, dim
, nrow
, ncol
, head
和 tail
。 您还可以使用 as.data.frame()
将数据从 Arrow record batch 中提取到 R 中。 请参见示例。
关于 $
方法的一个注意事项:由于 RecordBatch
是一个 R6
对象,因此 $
也用于访问对象的方法(见下文)。 方法优先于表的列。 因此,即使表中存在名为“Slice”的列,batch$Slice
也会返回“Slice”方法函数。
R6 方法
除了更友好的 R 的 S3 方法,RecordBatch
对象还有以下 R6 方法,这些方法映射到底层的 C++ 方法
$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 向量或 Array Array)i
给定的位置。$Filter(i, keep_na = TRUE)
:返回一个RecordBatch
,其中的行位于逻辑向量(或 Arrow 布尔 Array)i
为TRUE
的位置。$SortIndices(names, descending = FALSE)
:返回一个整数行位置的Array
,可用于按第一个命名列按升序或降序重新排列RecordBatch
,并使用其他命名列打破平局。descending
可以是长度为 1 或与names
长度相同的逻辑向量。$serialize()
:返回适合进程间通信的原始向量$cast(target_schema, safe = TRUE, options = cast_options(safe))
:更改记录批次的 schema。
还有一些 active bindings
$num_columns
$num_rows
$schema
$metadata
:将Schema
的键值元数据作为命名列表返回。 通过分配修改或替换(batch$metadata <- new_metadata
)。 所有列表元素都被强制转换为字符串。 有关更多信息,请参见schema()
。$columns
:返回Array
的列表