struct DistinctMedianAccumulator<T: ArrowNumericType> {
data_type: DataType,
distinct_values: HashSet<Hashable<T::Native>>,
}Expand description
The distinct median accumulator accumulates the raw input values
as ScalarValues
The intermediate state is represented as a List of scalar values updated by
merge_batch and a Vec of ArrayRef that are converted to scalar values
in the final evaluation step so that we avoid expensive conversions and
allocations during update_batch.
Fields§
§data_type: DataType§distinct_values: HashSet<Hashable<T::Native>>Trait Implementations§
Source§impl<T: ArrowNumericType> Accumulator for DistinctMedianAccumulator<T>
impl<T: ArrowNumericType> Accumulator for DistinctMedianAccumulator<T>
Source§fn state(&mut self) -> Result<Vec<ScalarValue>>
fn state(&mut self) -> Result<Vec<ScalarValue>>
Returns the intermediate state of the accumulator, consuming the
intermediate state. Read more
Source§fn update_batch(&mut self, values: &[ArrayRef]) -> Result<()>
fn update_batch(&mut self, values: &[ArrayRef]) -> Result<()>
Updates the accumulator’s state from its input. Read more
Source§fn merge_batch(&mut self, states: &[ArrayRef]) -> Result<()>
fn merge_batch(&mut self, states: &[ArrayRef]) -> Result<()>
Updates the accumulator’s state from an
Array containing one
or more intermediate values. Read moreSource§fn evaluate(&mut self) -> Result<ScalarValue>
fn evaluate(&mut self) -> Result<ScalarValue>
Returns the final aggregate value, consuming the internal state. Read more
Source§fn size(&self) -> usize
fn size(&self) -> usize
Returns the allocated size required for this accumulator, in
bytes, including
Self. Read more§fn retract_batch(
&mut self,
_values: &[Arc<dyn Array>],
) -> Result<(), DataFusionError>
fn retract_batch( &mut self, _values: &[Arc<dyn Array>], ) -> Result<(), DataFusionError>
Retracts (removed) an update (caused by the given inputs) to
accumulator’s state. Read more
§fn supports_retract_batch(&self) -> bool
fn supports_retract_batch(&self) -> bool
Does the accumulator support incrementally updating its value
by removing values. Read more
Auto Trait Implementations§
impl<T> Freeze for DistinctMedianAccumulator<T>
impl<T> RefUnwindSafe for DistinctMedianAccumulator<T>where
<T as ArrowPrimitiveType>::Native: RefUnwindSafe,
impl<T> Send for DistinctMedianAccumulator<T>
impl<T> Sync for DistinctMedianAccumulator<T>
impl<T> Unpin for DistinctMedianAccumulator<T>where
<T as ArrowPrimitiveType>::Native: Unpin,
impl<T> UnwindSafe for DistinctMedianAccumulator<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