跳到內容

Feather 為資料框提供二進制欄式序列化。它旨在提高資料框的讀寫效率,並使跨資料分析語言共享資料變得容易。write_feather() 可以寫入 Feather Version 1 (V1)(自 2016 年起可用的舊版)和 Version 2 (V2)(即 Apache Arrow IPC 檔案格式)。預設版本為 V2。V1 檔案與 Arrow IPC 檔案不同,並且缺少許多功能,例如儲存所有 Arrow 資料類型的能力和壓縮支援。write_ipc_file() 只能寫入 V2 檔案。

用法

write_feather(
  x,
  sink,
  version = 2,
  chunk_size = 65536L,
  compression = c("default", "lz4", "lz4_frame", "uncompressed", "zstd"),
  compression_level = NULL
)

write_ipc_file(
  x,
  sink,
  chunk_size = 65536L,
  compression = c("default", "lz4", "lz4_frame", "uncompressed", "zstd"),
  compression_level = NULL
)

參數

x

data.frameRecordBatchTable

sink

字串檔案路徑、連線、URI 或 OutputStream,或檔案系統中的路徑 (SubTreeFileSystem)

version

整數 Feather 檔案版本,Version 1 或 Version 2。預設版本為 Version 2。

chunk_size

對於 V2 檔案,每個資料區塊在檔案中應有的列數。當您需要更快的隨機列存取時,請使用較小的 chunk_size。預設值為 64K。V1 不支援此選項。

compression

要使用的壓縮編碼解碼器名稱(如果有的話)。如果您的 Arrow C++ 程式庫組建中提供 LZ4,則預設值為 "lz4",否則為 "uncompressed"。"zstd" 是另一個可用的編碼解碼器,通常具有更好的壓縮比,但會降低讀寫效能。"lz4" 是 "lz4_frame" 編碼解碼器的縮寫。詳情請參閱 codec_is_available()TRUEFALSE 也可以用來代替 "default" 和 "uncompressed"。V1 不支援此選項。

compression_level

如果 compression 為 "zstd",您可以指定整數壓縮級別。如果省略,則使用壓縮編碼解碼器的預設壓縮級別。

輸入 x,不可見。請注意,如果 sinkOutputStream,則串流將保持開啟。

另請參閱

RecordBatchWriter 用於以更低階的方式存取寫入 Arrow IPC 資料。

Schema 用於取得關於結構描述和 metadata 處理的資訊。

範例

# We recommend the ".arrow" extension for Arrow IPC files (Feather V2).
tf1 <- tempfile(fileext = ".feather")
tf2 <- tempfile(fileext = ".arrow")
tf3 <- tempfile(fileext = ".arrow")
on.exit({
  unlink(tf1)
  unlink(tf2)
  unlink(tf3)
})
write_feather(mtcars, tf1, version = 1)
write_feather(mtcars, tf2)
write_ipc_file(mtcars, tf3)