S3 方法與用法
Record batch 類似於資料框架 (data-frame),許多您期望在 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
record batch 相等,則傳回TRUE
$column(i)
:從 batch 中依整數位置提取Array
$column_name(i)
:依整數位置取得欄位的名稱$names()
:取得所有欄位名稱 (由names(batch)
呼叫)$nbytes()
:record batch 元素消耗的總位元組數$RenameColumns(value)
:設定所有欄位名稱 (由names(batch) <- value
呼叫)$GetColumnByName(name)
:依字串名稱提取Array
$RemoveColumn(i)
:依整數位置從 batch 中移除欄位$SelectColumns(indices)
:傳回一個新的 record batch,其中包含選定的欄位,以 0 為基底的整數表示。$Slice(offset, length = NULL)
:建立一個從指定的整數 offset 開始的零複製視圖,並持續給定的長度,如果NULL
(預設值) 則到表格的末尾。$Take(i)
:傳回一個RecordBatch
,其中包含由整數 (R 向量或 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))
:變更 record batch 的 schema。
還有一些主動綁定 (active bindings)
$num_columns
$num_rows
$schema
$metadata
:將Schema
的鍵值 metadata 作為具名列表傳回。透過賦值 (batch$metadata <- new_metadata
) 修改或替換。所有列表元素都會被強制轉換為字串。請參閱schema()
以取得更多資訊。$columns
:傳回Array
的列表