struct Section {
bytes: Bytes,
metadata: ArrowReaderMetadata,
}Expand description
One Parquet section of the cached blob, with its footer parsed ONCE.
Re-opening a ParquetRecordBatchReaderBuilder per row group re-parses
the whole footer each time, which is quadratic in the row-group count —
hundreds of milliseconds on a model that streamed a few hundred batches.
Fields§
§bytes: Bytes§metadata: ArrowReaderMetadataImplementations§
Source§impl Section
impl Section
fn open(bytes: Bytes) -> Option<Self>
Sourcefn read_all(&self) -> Option<RecordBatch>
fn read_all(&self) -> Option<RecordBatch>
The whole table as one RecordBatch, however many row groups it has
(none included).
fn row_groups(&self) -> usize
Sourcefn read_row_group(&self, index: usize) -> Option<RecordBatch>
fn read_row_group(&self, index: usize) -> Option<RecordBatch>
Read row group index as one RecordBatch. The reader’s batch size is
pinned to the group’s own row count so it yields a single batch instead
of fragments that would then have to be copied back together.
Auto Trait Implementations§
impl !Freeze for Section
impl !RefUnwindSafe for Section
impl Send for Section
impl Sync for Section
impl Unpin for Section
impl !UnwindSafe for Section
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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
Mutably borrows from an owned value. Read more
§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>
Converts
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>
Converts
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.