S3 方法和用法
记录批次类似于数据框,许多你期望在 data.frame
上使用的函数都在 RecordBatch
中实现。这包括 [
、[[
、$
、names
、dim
、nrow
、ncol
、head
和 tail
。你还可以使用 as.data.frame()
将 Arrow 记录批次中的数据提取到 R 中。请参阅示例。
关于 $
方法的一个警告:由于 RecordBatch
是一个 R6
对象,所以 $
也用于访问对象的函数(参见下文)。函数优先于表格的列。因此,batch$Slice
会返回 "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 向量或数组数组)i
给出的位置处的行。$Filter(i, keep_na = TRUE)
: 返回一个RecordBatch
,其中包含逻辑向量(或 Arrow 布尔数组)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
列表