Apache Arrow defines two formats for serializing data for interprocess communication (IPC): a "stream" format and a "file" format, known as Feather. write_ipc_stream() and write_feather() write those formats, respectively.

write_arrow(x, sink, ...)

write_ipc_stream(x, sink, ...)



data.frame, RecordBatch, or Table


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


extra parameters passed to write_feather().


x, invisibly.


write_arrow(), a wrapper around write_ipc_stream() and write_feather() with some nonstandard behavior, is deprecated. You should explicitly choose the function that will write the desired IPC format (stream or file) since either can be written to a file or OutputStream.

See also

write_feather() for writing IPC files. write_to_raw() to serialize data to a buffer. RecordBatchWriter for a lower-level interface.


tf <- tempfile() on.exit(unlink(tf)) write_ipc_stream(mtcars, tf)