VIn
- input valueKOut
- output keyVOut
- output valuepublic interface RCollectionMapReduce<VIn,KOut,VOut> extends RMapReduceExecutor<VIn,KOut,VOut>
RSet
, RList
, RSetCache
, RScoredSortedSet
, RSortedSet
and others
using Mapper, Reducer and/or Collator tasks launched across Redisson Nodes.
Usage example:
public class WordMapper implements RCollectionMapper<String, String, Integer> { public void map(String value, RCollector<String, Integer> collector) { String[] words = value.split("[^a-zA-Z]"); for (String word : words) { collector.emit(word, 1); } } } public class WordReducer implements RReducer<String, Integer> { public Integer reduce(String reducedKey, Iterator<Integer> iter) { int sum = 0; while (iter.hasNext()) { Integer i = (Integer) iter.next(); sum += i; } return sum; } } public class WordCollator implements RCollator<String, Integer, Integer> { public Integer collate(Map<String, Integer> resultMap) { int result = 0; for (Integer count : resultMap.values()) { result += count; } return result; } } RList<String> list = redisson.getList("myWords"); Map<String, Integer> wordsCount = list.<String, Integer>mapReduce() .mapper(new WordMapper()) .reducer(new WordReducer()) .execute(); Integer totalCount = list.<String, Integer>mapReduce() .mapper(new WordMapper()) .reducer(new WordReducer()) .execute(new WordCollator());
Modifier and Type | Method and Description |
---|---|
RCollectionMapReduce<VIn,KOut,VOut> |
mapper(RCollectionMapper<VIn,KOut,VOut> mapper)
Setup Mapper object
|
RCollectionMapReduce<VIn,KOut,VOut> |
reducer(RReducer<KOut,VOut> reducer)
Setup Reducer object
|
RCollectionMapReduce<VIn,KOut,VOut> |
timeout(long timeout,
TimeUnit unit)
Defines timeout for MapReduce process
|
execute, execute, execute, executeAsync, executeAsync, executeAsync
RCollectionMapReduce<VIn,KOut,VOut> timeout(long timeout, TimeUnit unit)
timeout
- for processunit
- of timeoutRCollectionMapReduce<VIn,KOut,VOut> mapper(RCollectionMapper<VIn,KOut,VOut> mapper)
mapper
- used during MapReduceCopyright © 2014–2018 The Redisson Project. All rights reserved.