pub struct ReaderBuilder { /* private fields */ }
Expand description
CSV file reader builder
Implementations§
source§impl ReaderBuilder
impl ReaderBuilder
sourcepub fn new(schema: Arc<Schema>) -> 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();
sourcepub fn with_header(self, has_header: bool) -> ReaderBuilder
pub fn with_header(self, has_header: bool) -> ReaderBuilder
Set whether the CSV file has a header
sourcepub fn with_format(self, format: Format) -> ReaderBuilder
pub fn with_format(self, format: Format) -> ReaderBuilder
Overrides the Format
of this `ReaderBuilder
sourcepub fn with_delimiter(self, delimiter: u8) -> 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
pub fn with_quote(self, quote: u8) -> ReaderBuilder
pub fn with_terminator(self, terminator: u8) -> ReaderBuilder
sourcepub fn with_null_regex(self, null_regex: Regex) -> ReaderBuilder
pub fn with_null_regex(self, null_regex: Regex) -> ReaderBuilder
Provide a regex to match null values, defaults to ^$
sourcepub fn with_batch_size(self, batch_size: usize) -> ReaderBuilder
pub fn with_batch_size(self, batch_size: usize) -> ReaderBuilder
Set the batch size (number of records to load at one time)
sourcepub fn with_bounds(self, start: usize, end: usize) -> ReaderBuilder
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.
sourcepub fn with_projection(self, projection: Vec<usize>) -> ReaderBuilder
pub fn with_projection(self, projection: Vec<usize>) -> ReaderBuilder
Set the reader’s column projection
sourcepub fn build<R>(self, reader: R) -> Result<BufReader<BufReader<R>>, ArrowError>where
R: Read,
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
sourcepub fn build_buffered<R>(self, reader: R) -> Result<BufReader<R>, ArrowError>where
R: BufRead,
pub fn build_buffered<R>(self, reader: R) -> Result<BufReader<R>, ArrowError>where
R: BufRead,
Create a new BufReader
from a buffered reader
sourcepub fn build_decoder(self) -> Decoder
pub fn build_decoder(self) -> Decoder
Builds a decoder that can be used to decode CSV from an arbitrary byte stream
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ReaderBuilder
impl RefUnwindSafe for ReaderBuilder
impl Send for ReaderBuilder
impl Sync for ReaderBuilder
impl Unpin for ReaderBuilder
impl UnwindSafe for ReaderBuilder
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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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