pub struct StandardDeviationAnalyzer { /* private fields */ }Expand description
Analyzer that computes standard deviation and variance.
This analyzer calculates both population and sample standard deviation, providing insights into data variability and spread. It uses numerically stable algorithms to avoid precision loss with large datasets.
§Example
ⓘ
use term_guard::analyzers::advanced::StandardDeviationAnalyzer;
use datafusion::prelude::*;
let ctx = SessionContext::new();
// Register your data table
let analyzer = StandardDeviationAnalyzer::new("temperature");
let state = analyzer.compute_state_from_data(&ctx).await?;
let metric = analyzer.compute_metric_from_state(&state)?;
if let MetricValue::Map(stats) = metric {
println!("Temperature statistics:");
println!(" Standard Deviation: {:?}", stats.get("std_dev"));
println!(" Variance: {:?}", stats.get("variance"));
println!(" Sample Std Dev: {:?}", stats.get("sample_std_dev"));
}Implementations§
Trait Implementations§
Source§impl Analyzer for StandardDeviationAnalyzer
impl Analyzer for StandardDeviationAnalyzer
Source§type State = StandardDeviationState
type State = StandardDeviationState
The state type for incremental computation.
Source§type Metric = MetricValue
type Metric = MetricValue
The metric type produced by this analyzer.
Source§fn compute_state_from_data<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = AnalyzerResult<Self::State>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn compute_state_from_data<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 SessionContext,
) -> Pin<Box<dyn Future<Output = AnalyzerResult<Self::State>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Computes the state from the input data. Read more
Source§fn compute_metric_from_state(
&self,
state: &Self::State,
) -> AnalyzerResult<Self::Metric>
fn compute_metric_from_state( &self, state: &Self::State, ) -> AnalyzerResult<Self::Metric>
Computes the final metric from the accumulated state. Read more
Source§fn description(&self) -> &str
fn description(&self) -> &str
Returns a description of what this analyzer computes. Read more
Source§fn columns(&self) -> Vec<&str>
fn columns(&self) -> Vec<&str>
Returns the column(s) this analyzer operates on, if any. Read more
Source§fn merge_states(&self, states: Vec<Self::State>) -> AnalyzerResult<Self::State>
fn merge_states(&self, states: Vec<Self::State>) -> AnalyzerResult<Self::State>
Merges multiple states into a single state. Read more
Source§fn metric_key(&self) -> String
fn metric_key(&self) -> String
Returns the metric key for storing results. Read more
Source§fn is_combinable(&self) -> bool
fn is_combinable(&self) -> bool
Indicates whether this analyzer can be combined with others. Read more
Source§impl Clone for StandardDeviationAnalyzer
impl Clone for StandardDeviationAnalyzer
Source§fn clone(&self) -> StandardDeviationAnalyzer
fn clone(&self) -> StandardDeviationAnalyzer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for StandardDeviationAnalyzer
impl RefUnwindSafe for StandardDeviationAnalyzer
impl Send for StandardDeviationAnalyzer
impl Sync for StandardDeviationAnalyzer
impl Unpin for StandardDeviationAnalyzer
impl UnwindSafe for StandardDeviationAnalyzer
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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