pub struct FileWriter<W> { /* private fields */ }
Expand description
Arrow File Writer
Writes Arrow RecordBatch
es in the IPC File Format.
§See Also
StreamWriter
for writing IPC Streams
§Example
let batch = record_batch!(("a", Int32, [1, 2, 3])).unwrap();
// create a new writer, the schema must be known in advance
let mut writer = FileWriter::try_new(&mut file, &batch.schema()).unwrap();
// write each batch to the underlying writer
writer.write(&batch).unwrap();
// When all batches are written, call finish to flush all buffers
writer.finish().unwrap();
Implementations§
Source§impl<W> FileWriter<BufWriter<W>>where
W: Write,
impl<W> FileWriter<BufWriter<W>>where
W: Write,
Sourcepub fn try_new_buffered(
writer: W,
schema: &Schema,
) -> Result<FileWriter<BufWriter<W>>, ArrowError>
pub fn try_new_buffered( writer: W, schema: &Schema, ) -> Result<FileWriter<BufWriter<W>>, ArrowError>
Try to create a new file writer with the writer wrapped in a BufWriter.
See FileWriter::try_new
for an unbuffered version.
Source§impl<W> FileWriter<W>where
W: Write,
impl<W> FileWriter<W>where
W: Write,
Sourcepub fn try_new(writer: W, schema: &Schema) -> Result<FileWriter<W>, ArrowError>
pub fn try_new(writer: W, schema: &Schema) -> Result<FileWriter<W>, ArrowError>
Try to create a new writer, with the schema written as part of the header
Note the created writer is not buffered. See FileWriter::try_new_buffered
for details.
§Errors
An ‘Err’ may be returned if writing the header to the writer fails.
Sourcepub fn try_new_with_options(
writer: W,
schema: &Schema,
write_options: IpcWriteOptions,
) -> Result<FileWriter<W>, ArrowError>
pub fn try_new_with_options( writer: W, schema: &Schema, write_options: IpcWriteOptions, ) -> Result<FileWriter<W>, ArrowError>
Try to create a new writer with IpcWriteOptions
Note the created writer is not buffered. See FileWriter::try_new_buffered
for details.
§Errors
An ‘Err’ may be returned if writing the header to the writer fails.
Sourcepub fn write_metadata(
&mut self,
key: impl Into<String>,
value: impl Into<String>,
)
pub fn write_metadata( &mut self, key: impl Into<String>, value: impl Into<String>, )
Adds a key-value pair to the FileWriter’s custom metadata
Sourcepub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
Write a record batch to the file
Sourcepub fn finish(&mut self) -> Result<(), ArrowError>
pub fn finish(&mut self) -> Result<(), ArrowError>
Write footer and closing tag, then mark the writer as done
Sourcepub fn get_mut(&mut self) -> &mut W
pub fn get_mut(&mut self) -> &mut W
Gets a mutable reference to the underlying writer.
It is inadvisable to directly write to the underlying writer.
Sourcepub fn flush(&mut self) -> Result<(), ArrowError>
pub fn flush(&mut self) -> Result<(), ArrowError>
Flush the underlying writer.
Both the BufWriter and the underlying writer are flushed.
Sourcepub fn into_inner(self) -> Result<W, ArrowError>
pub fn into_inner(self) -> Result<W, ArrowError>
Trait Implementations§
Source§impl<W> RecordBatchWriter for FileWriter<W>where
W: Write,
impl<W> RecordBatchWriter for FileWriter<W>where
W: Write,
Source§fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
Auto Trait Implementations§
impl<W> Freeze for FileWriter<W>where
W: Freeze,
impl<W> RefUnwindSafe for FileWriter<W>where
W: RefUnwindSafe,
impl<W> Send for FileWriter<W>where
W: Send,
impl<W> Sync for FileWriter<W>where
W: Sync,
impl<W> Unpin for FileWriter<W>where
W: Unpin,
impl<W> UnwindSafe for FileWriter<W>where
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more