pub struct ReaderBuilder { /* private fields */ }
Implementations§
source§impl ReaderBuilder
impl ReaderBuilder
sourcepub fn new(schema: Arc<Schema>) -> ReaderBuilder
pub fn new(schema: Arc<Schema>) -> ReaderBuilder
Create a new ReaderBuilder
with the provided SchemaRef
This could be obtained using infer_json_schema
if not known
Any columns not present in schema
will be ignored, unless strict_mode
is set to true.
In this case, an error is returned when a column is missing from schema
.
sourcepub fn new_with_field(field: impl Into<Arc<Field>>) -> ReaderBuilder
pub fn new_with_field(field: impl Into<Arc<Field>>) -> ReaderBuilder
Create a new ReaderBuilder
that will parse JSON values of field.data_type()
Unlike ReaderBuilder::new
this does not require the root of the JSON data
to be an object, i.e. {..}
, allowing for parsing of any valid JSON value(s)
// Root of JSON schema is a numeric type
let data = "1\n2\n3\n";
let field = Arc::new(Field::new("int", DataType::Int32, true));
let mut reader = ReaderBuilder::new_with_field(field.clone()).build(data.as_bytes()).unwrap();
let b = reader.next().unwrap().unwrap();
let values = b.column(0).as_primitive::<Int32Type>().values();
assert_eq!(values, &[1, 2, 3]);
// Root of JSON schema is a list type
let data = "[1, 2, 3, 4, 5, 6, 7]\n[1, 2, 3]";
let field = Field::new_list("int", field.clone(), true);
let mut reader = ReaderBuilder::new_with_field(field).build(data.as_bytes()).unwrap();
let b = reader.next().unwrap().unwrap();
let list = b.column(0).as_list::<i32>();
assert_eq!(list.offsets().as_ref(), &[0, 7, 10]);
let list_values = list.values().as_primitive::<Int32Type>();
assert_eq!(list_values.values(), &[1, 2, 3, 4, 5, 6, 7, 1, 2, 3]);
sourcepub fn with_batch_size(self, batch_size: usize) -> ReaderBuilder
pub fn with_batch_size(self, batch_size: usize) -> ReaderBuilder
Sets the batch size in rows to read
sourcepub fn coerce_primitive(self, coerce_primitive: bool) -> ReaderBuilder
👎Deprecated: Use with_coerce_primitive
pub fn coerce_primitive(self, coerce_primitive: bool) -> ReaderBuilder
Sets if the decoder should coerce primitive values (bool and number) into string when the Schema’s column is Utf8 or LargeUtf8.
sourcepub fn with_coerce_primitive(self, coerce_primitive: bool) -> ReaderBuilder
pub fn with_coerce_primitive(self, coerce_primitive: bool) -> ReaderBuilder
Sets if the decoder should coerce primitive values (bool and number) into string when the Schema’s column is Utf8 or LargeUtf8.
sourcepub fn with_strict_mode(self, strict_mode: bool) -> ReaderBuilder
pub fn with_strict_mode(self, strict_mode: bool) -> ReaderBuilder
Sets if the decoder should return an error if it encounters a column not present
in schema
sourcepub fn build_decoder(self) -> Result<Decoder, ArrowError>
pub fn build_decoder(self) -> Result<Decoder, ArrowError>
Create a Decoder
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