Passing your Arrows around
Since Arrow is designed to be easily passable between processes, regardless of whether they are locally on the same machine or not, the interfaces for passing around record batches are referred to as IPC libraries in Arrow. If the processes happen to be on the same machine, then it’s possible to share your data without performing any copies at all!
What is this sorcery?!
First things first, there are two types of binary formats defined for sharing record batches between processes—a streaming format and a random access format, as outlined in more detail here:
- The streaming format exists for sending a sequence of record batches of an arbitrary length. It must be processed from start to end; you can’t get random access to a particular record batch in the stream without processing all the ones before it.
- The random access—or file—format is for sharing a known number of record batches. Because it supports random...