arrow_ipc::writer

Struct FileWriter

source
pub struct FileWriter<W> {
    writer: W,
    write_options: IpcWriteOptions,
    schema: SchemaRef,
    block_offsets: usize,
    dictionary_blocks: Vec<Block>,
    record_blocks: Vec<Block>,
    finished: bool,
    dictionary_tracker: DictionaryTracker,
    custom_metadata: HashMap<String, String>,
    data_gen: IpcDataGenerator,
}
Expand description

Writer for an IPC file

Fields§

§writer: W

The object to write to

§write_options: IpcWriteOptions

IPC write options

§schema: SchemaRef

A reference to the schema, used in validating record batches

§block_offsets: usize

The number of bytes between each block of bytes, as an offset for random access

§dictionary_blocks: Vec<Block>

Dictionary blocks that will be written as part of the IPC footer

§record_blocks: Vec<Block>

Record blocks that will be written as part of the IPC footer

§finished: bool

Whether the writer footer has been written, and the writer is finished

§dictionary_tracker: DictionaryTracker

Keeps track of dictionaries that have been written

§custom_metadata: HashMap<String, String>

User level customized metadata

§data_gen: IpcDataGenerator

Implementations§

source§

impl<W: Write> FileWriter<BufWriter<W>>

source

pub fn try_new_buffered(writer: W, schema: &Schema) -> Result<Self, 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: Write> FileWriter<W>

source

pub fn try_new(writer: W, schema: &Schema) -> Result<Self, 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.

source

pub fn try_new_with_options( writer: W, schema: &Schema, write_options: IpcWriteOptions, ) -> Result<Self, 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.

source

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

source

pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Write a record batch to the file

source

pub fn finish(&mut self) -> Result<(), ArrowError>

Write footer and closing tag, then mark the writer as done

source

pub fn schema(&self) -> &SchemaRef

Returns the arrow [SchemaRef] for this arrow file.

source

pub fn get_ref(&self) -> &W

Gets a reference to the underlying writer.

source

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.

source

pub fn flush(&mut self) -> Result<(), ArrowError>

Flush the underlying writer.

Both the BufWriter and the underlying writer are flushed.

source

pub fn into_inner(self) -> Result<W, ArrowError>

Unwraps the the underlying writer.

The writer is flushed and the FileWriter is finished before returning.

§Errors

An ‘Err’ may be returned if an error occurs while finishing the StreamWriter or while flushing the writer.

Trait Implementations§

source§

impl<W: Write> RecordBatchWriter for FileWriter<W>

source§

fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Write a single batch to the writer.
source§

fn close(self) -> Result<(), ArrowError>

Write footer or termination data, then mark the writer as done.

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,