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
impl ReaderBuilder
pub 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();pub 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
pub fn with_format(self, format: Format) -> ReaderBuilder
pub fn with_format(self, format: Format) -> ReaderBuilder
Overrides the Format of this ReaderBuilder
pub 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_escape(self, escape: u8) -> ReaderBuilder
Set the given character as the CSV file’s escape character
pub 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
pub fn with_terminator(self, terminator: u8) -> ReaderBuilder
pub fn with_terminator(self, terminator: u8) -> ReaderBuilder
Provide a custom terminator character, defaults to CRLF
pub 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
pub 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 ^$
pub 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)
pub 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.
pub fn with_projection(self, projection: Vec<usize>) -> ReaderBuilder
pub fn with_projection(self, projection: Vec<usize>) -> ReaderBuilder
Set the reader’s column projection
pub 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.
pub 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
pub 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
pub 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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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