Struct FileWriter
pub struct FileWriter<W> {
writer: W,
write_options: IpcWriteOptions,
schema: Arc<Schema>,
block_offsets: usize,
dictionary_blocks: Vec<Block>,
record_blocks: Vec<Block>,
finished: bool,
dictionary_tracker: DictionaryTracker,
custom_metadata: HashMap<String, String>,
data_gen: IpcDataGenerator,
compression_context: CompressionContext,
}Expand description
Arrow File Writer
Writes Arrow RecordBatches in the IPC File Format.
§See Also
StreamWriterfor 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();Fields§
§writer: W§write_options: IpcWriteOptions§schema: Arc<Schema>§block_offsets: usize§dictionary_blocks: Vec<Block>§record_blocks: Vec<Block>§finished: bool§dictionary_tracker: DictionaryTracker§custom_metadata: HashMap<String, String>§data_gen: IpcDataGenerator§compression_context: CompressionContextImplementations§
§impl<W> FileWriter<BufWriter<W>>where
W: Write,
impl<W> FileWriter<BufWriter<W>>where
W: Write,
pub 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.
§impl<W> FileWriter<W>where
W: Write,
impl<W> FileWriter<W>where
W: Write,
pub 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.
pub 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.
pub 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
pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
Write a record batch to the file
pub fn finish(&mut self) -> Result<(), ArrowError>
pub fn finish(&mut self) -> Result<(), ArrowError>
Write footer and closing tag, then mark the writer as done
pub 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.
pub 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.
pub fn into_inner(self) -> Result<W, ArrowError>
pub fn into_inner(self) -> Result<W, ArrowError>
Trait Implementations§
§impl<W> RecordBatchWriter for FileWriter<W>where
W: Write,
impl<W> RecordBatchWriter for FileWriter<W>where
W: Write,
§fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
§fn close(self) -> Result<(), ArrowError>
fn close(self) -> 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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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