Key - the input key typeSupplied - the value type returned from the SupplierResult - the value type returned from the aggregation@Beta public interface Aggregation<Key,Supplied,Result>
Mapper,
Combiner, Reducer and
probably a Collator to execute an aggregation over a
supplied set of data.
As you'll see in the following example, the Aggregations API is fully type-safe. Due to the lack of
full type inference support on Java 6 and Java 7, it seems more verbose than it actually is.
IMap<String, Employee> map = hazelcastInstance.getMap("employees");
Supplier<String, Employee, Integer> supplier = Supplier.all((employee) -> employee.getSalaryPerMonth());
Aggregation<String, Integer, Integer> aggregation = Aggregations.integerAvg();
int avgSalary = map.aggregate(supplier, aggregation);
With Java 8 it is possible to write that all in just one line so that the API becomes very straight forward.
IMap<String, Employee> map = hazelcastInstance.getMap("employees");
int avgSalary = map.aggregate(Supplier.all((employee) -> employee.getSalaryPerMonth(), Aggregations.integerAvg());
| Modifier and Type | Method and Description |
|---|---|
Collator<Map.Entry,Result> |
getCollator()
Returns the Collator implementation used in this aggregation.
|
CombinerFactory |
getCombinerFactory()
Returns the CombinerFactory for this aggregation to pre-reduce values on mapping
nodes.
|
Mapper |
getMapper(Supplier<Key,?,Supplied> supplier)
Returns the Mapper for this aggregation.
|
ReducerFactory |
getReducerFactory()
Returns the ReducerFactory for this aggregation.
|
Collator<Map.Entry,Result> getCollator()
Mapper getMapper(Supplier<Key,?,Supplied> supplier)
Supplier to filter / transform
values before emitting them to the further aggregation steps.supplier - the Supplier to filter or / and transform valuesCombinerFactory getCombinerFactory()
Combiner is not always possible.ReducerFactory getReducerFactory()
Reducer has to handle values of
the returned type of the Combiner.Copyright © 2016 Hazelcast, Inc.. All Rights Reserved.