[][src]Trait differential_dataflow::operators::threshold::ThresholdTotal

pub trait ThresholdTotal<G: Scope, K: ExchangeData, R: ExchangeData + Monoid> where
    G::Timestamp: TotalOrder + Lattice + Ord
{ fn threshold_total<R2: Abelian, F: Fn(&K, &R) -> R2 + 'static>(
        &self,
        thresh: F
    ) -> Collection<G, K, R2>; fn distinct_total(&self) -> Collection<G, K, isize> { ... } }

Extension trait for the distinct differential dataflow method.

Required methods

fn threshold_total<R2: Abelian, F: Fn(&K, &R) -> R2 + 'static>(
    &self,
    thresh: F
) -> Collection<G, K, R2>

Reduces the collection to one occurrence of each distinct element.

Examples

extern crate timely;
extern crate differential_dataflow;

use differential_dataflow::input::Input;
use differential_dataflow::operators::ThresholdTotal;

fn main() {
    ::timely::example(|scope| {
        // report the number of occurrences of each key
        scope.new_collection_from(1 .. 10).1
             .map(|x| x / 3)
             .threshold_total(|_,c| c % 2);
    });
}
Loading content...

Provided methods

fn distinct_total(&self) -> Collection<G, K, isize>

Reduces the collection to one occurrence of each distinct element.

This reduction only tests whether the weight associated with a record is non-zero, and otherwise ignores its specific value. To take more general actions based on the accumulated weight, consider the threshold method.

Examples

extern crate timely;
extern crate differential_dataflow;

use differential_dataflow::input::Input;
use differential_dataflow::operators::ThresholdTotal;

fn main() {
    ::timely::example(|scope| {
        // report the number of occurrences of each key
        scope.new_collection_from(1 .. 10).1
             .map(|x| x / 3)
             .distinct_total();
    });
}
Loading content...

Implementors

impl<G: Scope, K: ExchangeData + Hashable, R: ExchangeData + Monoid> ThresholdTotal<G, K, R> for Collection<G, K, R> where
    G::Timestamp: TotalOrder + Lattice + Ord
[src]

impl<G: Scope, T1> ThresholdTotal<G, <T1 as TraceReader>::Key, <T1 as TraceReader>::R> for Arranged<G, T1> where
    G::Timestamp: TotalOrder + Lattice + Ord,
    T1: TraceReader<Val = (), Time = G::Timestamp> + Clone + 'static,
    T1::Key: ExchangeData,
    T1::R: ExchangeData + Monoid,
    T1::Batch: BatchReader<T1::Key, (), G::Timestamp, T1::R>,
    T1::Cursor: Cursor<T1::Key, (), G::Timestamp, T1::R>, 
[src]

Loading content...