Struct polars_io::json::JsonReader
source · pub struct JsonReader<'a, R>where
R: MmapBytesReader,{ /* private fields */ }
json
only.Expand description
Reads JSON in one of the formats in JsonFormat
into a DataFrame.
Implementations§
source§impl<'a, R> JsonReader<'a, R>where
R: MmapBytesReader,
impl<'a, R> JsonReader<'a, R>where
R: MmapBytesReader,
sourcepub fn with_schema(self, schema: SchemaRef) -> Self
pub fn with_schema(self, schema: SchemaRef) -> Self
Set the JSON file’s schema
sourcepub fn with_schema_overwrite(self, schema: &'a Schema) -> Self
pub fn with_schema_overwrite(self, schema: &'a Schema) -> Self
Overwrite parts of the inferred schema.
sourcepub fn infer_schema_len(self, max_records: Option<NonZeroUsize>) -> Self
pub fn infer_schema_len(self, max_records: Option<NonZeroUsize>) -> Self
Set the JSON reader to infer the schema of the file. Currently, this is only used when reading from
JsonFormat::JsonLines
, as JsonFormat::Json
reads in the entire array anyway.
When using JsonFormat::JsonLines
, max_records = None
will read the entire buffer in order to infer the
schema, Some(1)
would look only at the first record, Some(2)
the first two records, etc.
It is an error to pass max_records = Some(0)
, as a schema cannot be inferred from 0 records when deserializing
from JSON (unlike CSVs, there is no header row to inspect for column names).
sourcepub fn with_batch_size(self, batch_size: NonZeroUsize) -> Self
pub fn with_batch_size(self, batch_size: NonZeroUsize) -> Self
Set the batch size (number of records to load at one time)
This heavily influences loading time.
sourcepub fn with_projection(self, projection: Option<Vec<PlSmallStr>>) -> Self
pub fn with_projection(self, projection: Option<Vec<PlSmallStr>>) -> Self
Set the reader’s column projection: the names of the columns to keep after deserialization. If None
, all
columns are kept.
Setting projection
to the columns you want to keep is more efficient than deserializing all of the columns and
then dropping the ones you don’t want.
pub fn with_json_format(self, format: JsonFormat) -> Self
sourcepub fn with_ignore_errors(self, ignore: bool) -> Self
pub fn with_ignore_errors(self, ignore: bool) -> Self
Return a null
if an error occurs during parsing.
Trait Implementations§
source§impl<'a, R> SerReader<R> for JsonReader<'a, R>where
R: MmapBytesReader,
impl<'a, R> SerReader<R> for JsonReader<'a, R>where
R: MmapBytesReader,
source§fn finish(self) -> PolarsResult<DataFrame>
fn finish(self) -> PolarsResult<DataFrame>
Take the SerReader and return a parsed DataFrame.
Because JSON values specify their types (number, string, etc), no upcasting or conversion is performed between
incompatible types in the input. In the event that a column contains mixed dtypes, is it unspecified whether an
error is returned or whether elements of incompatible dtypes are replaced with null
.
source§fn set_rechunk(self, rechunk: bool) -> Self
fn set_rechunk(self, rechunk: bool) -> Self
Auto Trait Implementations§
impl<'a, R> Freeze for JsonReader<'a, R>where
R: Freeze,
impl<'a, R> !RefUnwindSafe for JsonReader<'a, R>
impl<'a, R> Send for JsonReader<'a, R>
impl<'a, R> Sync for JsonReader<'a, R>
impl<'a, R> Unpin for JsonReader<'a, R>where
R: Unpin,
impl<'a, R> !UnwindSafe for JsonReader<'a, R>
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