ReaderBuilder

Struct ReaderBuilder 

pub struct ReaderBuilder {
    schema: Arc<Schema>,
    format: Format,
    batch_size: usize,
    bounds: Option<(usize, usize)>,
    projection: Option<Vec<usize>>,
}
Expand description

CSV file reader builder

Fields§

§schema: Arc<Schema>§format: Format§batch_size: usize§bounds: Option<(usize, usize)>§projection: Option<Vec<usize>>

Implementations§

§

impl ReaderBuilder

pub fn new(schema: Arc<Schema>) -> ReaderBuilder

Create a new builder for configuring CSV parsing options.

To convert a builder into a reader, call ReaderBuilder::build

§Example
let mut file = File::open("test/data/uk_cities_with_headers.csv").unwrap();
// Infer the schema with the first 100 records
let (schema, _) = Format::default().infer_schema(&mut file, Some(100)).unwrap();
file.rewind().unwrap();

// create a builder
ReaderBuilder::new(Arc::new(schema)).build(file).unwrap();

pub fn with_header(self, has_header: bool) -> ReaderBuilder

Set whether the CSV file has a header

pub fn with_format(self, format: Format) -> ReaderBuilder

Overrides the Format of this ReaderBuilder

pub fn with_delimiter(self, delimiter: u8) -> ReaderBuilder

Set the CSV file’s column delimiter as a byte character

pub fn with_escape(self, escape: u8) -> ReaderBuilder

Set the given character as the CSV file’s escape character

pub fn with_quote(self, quote: u8) -> ReaderBuilder

Set the given character as the CSV file’s quote character, by default it is double quote

pub fn with_terminator(self, terminator: u8) -> ReaderBuilder

Provide a custom terminator character, defaults to CRLF

pub fn with_comment(self, comment: u8) -> ReaderBuilder

Provide a comment character, lines starting with this character will be ignored

pub fn with_null_regex(self, null_regex: Regex) -> ReaderBuilder

Provide a regex to match null values, defaults to ^$

pub fn with_batch_size(self, batch_size: usize) -> ReaderBuilder

Set the batch size (number of records to load at one time)

pub fn with_bounds(self, start: usize, end: usize) -> ReaderBuilder

Set the bounds over which to scan the reader. start and end are line numbers.

pub fn with_projection(self, projection: Vec<usize>) -> ReaderBuilder

Set the reader’s column projection

pub fn with_truncated_rows(self, allow: bool) -> ReaderBuilder

Whether to allow truncated rows when parsing.

By default this is set to false and will error if the CSV rows have different lengths. When set to true then it will allow records with less than the expected number of columns and fill the missing columns with nulls. If the record’s schema is not nullable, then it will still return an error.

pub fn build<R>(self, reader: R) -> Result<BufReader<BufReader<R>>, ArrowError>
where R: Read,

Create a new Reader from a non-buffered reader

If R: BufRead consider using Self::build_buffered to avoid unnecessary additional buffering, as internally this method wraps reader in std::io::BufReader

pub fn build_buffered<R>(self, reader: R) -> Result<BufReader<R>, ArrowError>
where R: BufRead,

Create a new BufReader from a buffered reader

pub fn build_decoder(self) -> Decoder

Builds a decoder that can be used to decode CSV from an arbitrary byte stream

Trait Implementations§

§

impl Debug for ReaderBuilder

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

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

§

impl<T> ErasedDestructor for T
where T: 'static,