[][src]Trait differential_dataflow::operators::reduce::Threshold

pub trait Threshold<G: Scope, K: Data, R1: Monoid> where
    G::Timestamp: Lattice + Ord
{ fn threshold<R2: Abelian, F: Fn(&K, &R1) -> R2 + 'static>(
        &self,
        thresh: F
    ) -> Collection<G, K, R2>; fn distinct(&self) -> Collection<G, K, isize> { ... } }

Extension trait for the threshold and distinct differential dataflow methods.

Required methods

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

Transforms the multiplicity of records.

The threshold function is obliged to map R1::zero to R2::zero, or at least the computation may behave as if it does. Otherwise, the transformation can be nearly arbitrary: the code does not assume any properties of threshold.

Examples

extern crate timely;
extern crate differential_dataflow;

use differential_dataflow::input::Input;
use differential_dataflow::operators::Threshold;

fn main() {
    ::timely::example(|scope| {
        // report at most one of each key.
        scope.new_collection_from(1 .. 10).1
             .map(|x| x / 3)
             .threshold(|_,c| c % 2);
    });
}
Loading content...

Provided methods

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

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::Threshold;

fn main() {
    ::timely::example(|scope| {
        // report at most one of each key.
        scope.new_collection_from(1 .. 10).1
             .map(|x| x / 3)
             .distinct();
    });
}
Loading content...

Implementors

impl<G: Scope, K: Data + Hashable, R1: Monoid> Threshold<G, K, R1> for Collection<G, K, R1> where
    G::Timestamp: Lattice + Ord
[src]

fn distinct(&self) -> Collection<G, K, isize>[src]

impl<G: Scope, K: Data, T1, R1: Monoid> Threshold<G, K, R1> for Arranged<G, K, (), R1, T1> where
    G::Timestamp: Lattice + Ord,
    T1: TraceReader<K, (), G::Timestamp, R1> + Clone + 'static,
    T1::Batch: BatchReader<K, (), G::Timestamp, R1>, 
[src]

fn distinct(&self) -> Collection<G, K, isize>[src]

Loading content...