struct MedianGroupsAccumulator<T: ArrowNumericType + Send> {
data_type: DataType,
group_values: Vec<Vec<T::Native>>,
}Expand description
The median groups accumulator accumulates the raw input values
For calculating the accurate medians of groups, we need to store all values
of groups before final evaluation.
So values in each group will be stored in a Vec<T>, and the total group values
will be actually organized as a Vec<Vec<T>>.
Fields§
§data_type: DataType§group_values: Vec<Vec<T::Native>>Implementations§
Trait Implementations§
Source§impl<T: Debug + ArrowNumericType + Send> Debug for MedianGroupsAccumulator<T>where
T::Native: Debug,
impl<T: Debug + ArrowNumericType + Send> Debug for MedianGroupsAccumulator<T>where
T::Native: Debug,
Source§impl<T: ArrowNumericType + Send> GroupsAccumulator for MedianGroupsAccumulator<T>
impl<T: ArrowNumericType + Send> GroupsAccumulator for MedianGroupsAccumulator<T>
Source§fn update_batch(
&mut self,
values: &[ArrayRef],
group_indices: &[usize],
opt_filter: Option<&BooleanArray>,
total_num_groups: usize,
) -> Result<()>
fn update_batch( &mut self, values: &[ArrayRef], group_indices: &[usize], opt_filter: Option<&BooleanArray>, total_num_groups: usize, ) -> Result<()>
Updates the accumulator’s state from its arguments, encoded as
a vector of [
ArrayRef]s. Read moreSource§fn merge_batch(
&mut self,
values: &[ArrayRef],
group_indices: &[usize],
_opt_filter: Option<&BooleanArray>,
total_num_groups: usize,
) -> Result<()>
fn merge_batch( &mut self, values: &[ArrayRef], group_indices: &[usize], _opt_filter: Option<&BooleanArray>, total_num_groups: usize, ) -> Result<()>
Merges intermediate state (the output from [
Self::state])
into this accumulator’s current state. Read moreSource§fn state(&mut self, emit_to: EmitTo) -> Result<Vec<ArrayRef>>
fn state(&mut self, emit_to: EmitTo) -> Result<Vec<ArrayRef>>
Returns the intermediate aggregate state for this accumulator,
used for multi-phase grouping, resetting its internal state. Read more
Source§fn evaluate(&mut self, emit_to: EmitTo) -> Result<ArrayRef>
fn evaluate(&mut self, emit_to: EmitTo) -> Result<ArrayRef>
Returns the final aggregate value for each group as a single
RecordBatch, resetting the internal state. Read moreSource§fn convert_to_state(
&self,
values: &[ArrayRef],
opt_filter: Option<&BooleanArray>,
) -> Result<Vec<ArrayRef>>
fn convert_to_state( &self, values: &[ArrayRef], opt_filter: Option<&BooleanArray>, ) -> Result<Vec<ArrayRef>>
Converts an input batch directly to the intermediate aggregate state. Read more
Source§fn supports_convert_to_state(&self) -> bool
fn supports_convert_to_state(&self) -> bool
Returns
true if [Self::convert_to_state] is implemented to support
intermediate aggregate state conversion.Auto Trait Implementations§
impl<T> Freeze for MedianGroupsAccumulator<T>
impl<T> RefUnwindSafe for MedianGroupsAccumulator<T>where
<T as ArrowPrimitiveType>::Native: RefUnwindSafe,
impl<T> Send for MedianGroupsAccumulator<T>
impl<T> Sync for MedianGroupsAccumulator<T>
impl<T> Unpin for MedianGroupsAccumulator<T>where
<T as ArrowPrimitiveType>::Native: Unpin,
impl<T> UnwindSafe for MedianGroupsAccumulator<T>where
<T as ArrowPrimitiveType>::Native: UnwindSafe,
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
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