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
Sourcepub fn with_escape(self, escape: u8) -> ReaderBuilder
pub fn with_escape(self, escape: u8) -> ReaderBuilder
Set the given character as the CSV file’s escape character
Sourcepub fn with_quote(self, quote: u8) -> ReaderBuilder
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
Sourcepub fn with_terminator(self, terminator: u8) -> ReaderBuilder
pub fn with_terminator(self, terminator: u8) -> ReaderBuilder
Provide a custom terminator character, defaults to CRLF
Sourcepub fn with_comment(self, comment: u8) -> ReaderBuilder
pub fn with_comment(self, comment: u8) -> ReaderBuilder
Provide a comment character, lines starting with this character will be ignored
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 with_truncated_rows(self, allow: bool) -> ReaderBuilder
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.
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> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.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 moreSource§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more