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.frame
、RecordBatch 或 Table- 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()
。TRUE
和FALSE
也可以用來代替 "default" 和 "uncompressed"。V1 不支援此選項。- compression_level
如果
compression
為 "zstd",您可以指定整數壓縮級別。如果省略,則使用壓縮編碼解碼器的預設壓縮級別。
值
輸入 x
,不可見。請注意,如果 sink
是 OutputStream,則串流將保持開啟。
另請參閱
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)