Skip to main content

CsvToArrowReader

Struct CsvToArrowReader 

Source
pub struct CsvToArrowReader<R> { /* private fields */ }
Expand description

CSV-to-Arrow streaming reader.

This struct reads CSV data from an async reader and converts it to Arrow RecordBatches. It supports configurable batch sizes and handles NULL values and type parsing.

Implementations§

Source§

impl<R: AsyncBufRead + Unpin> CsvToArrowReader<R>

Source

pub fn new(reader: R, schema: Arc<Schema>, options: &ArrowExportOptions) -> Self
where R: AsyncRead,

Creates a new CsvToArrowReader.

§Arguments
  • reader - The async reader to read CSV data from
  • schema - The Arrow schema for the output RecordBatches
  • options - Export options including batch size and NULL value
Source

pub fn from_buffered( reader: BufReader<R>, schema: Arc<Schema>, options: &ArrowExportOptions, ) -> Self
where R: AsyncRead,

Creates a new CsvToArrowReader from an already buffered reader.

§Arguments
  • reader - The buffered async reader to read CSV data from
  • schema - The Arrow schema for the output RecordBatches
  • options - Export options including batch size and NULL value
Source

pub fn schema(&self) -> Arc<Schema>

Returns the Arrow schema.

Source

pub async fn next_batch(&mut self) -> Result<Option<RecordBatch>, ExportError>

Reads the next batch of rows and returns a RecordBatch.

§Returns
  • Ok(Some(batch)) - A RecordBatch with up to batch_size rows
  • Ok(None) - No more data to read
  • Err(e) - An error occurred during parsing or conversion

Auto Trait Implementations§

§

impl<R> Freeze for CsvToArrowReader<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for CsvToArrowReader<R>
where R: RefUnwindSafe,

§

impl<R> Send for CsvToArrowReader<R>
where R: Send,

§

impl<R> Sync for CsvToArrowReader<R>
where R: Sync,

§

impl<R> Unpin for CsvToArrowReader<R>
where R: Unpin,

§

impl<R> UnsafeUnpin for CsvToArrowReader<R>
where R: UnsafeUnpin,

§

impl<R> UnwindSafe for CsvToArrowReader<R>
where R: 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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

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