Skip to contents

The Arrow IPC file format provides binary columnar serialization for data frames. It is designed to make reading and writing data frames efficient, and to make sharing data across data analysis languages easy.

Usage

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

Arguments

x

data.frame, RecordBatch, or Table

sink

A string file path, connection, URI, or OutputStream, or path in a file system (SubTreeFileSystem)

chunk_size

The number of rows that each chunk of data should have in the file. Use a smaller chunk_size when you need faster random row access. Default is 64K.

compression

Name of compression codec to use, if any. Default is "lz4" if LZ4 is available in your build of the Arrow C++ library, otherwise "uncompressed". "zstd" is the other available codec and generally has better compression ratios in exchange for slower read and write performance. "lz4" is shorthand for the "lz4_frame" codec. See codec_is_available() for details. TRUE and FALSE can also be used in place of "default" and "uncompressed".

compression_level

If compression is "zstd", you may specify an integer compression level. If omitted, the compression codec's default compression level is used.

Value

The input x, invisibly. Note that if sink is an OutputStream, the stream will be left open.

See also

RecordBatchWriter for lower-level access to writing Arrow IPC data.

Schema for information about schemas and metadata handling.

Examples

tf <- tempfile(fileext = ".arrow")
on.exit(unlink(tf))
write_ipc_file(mtcars, tf)