Package org.redisson.api.mapreduce
Interface RMapReduce<KIn,VIn,KOut,VOut>
-
- Type Parameters:
KIn- input keyVIn- input valueKOut- output keyVOut- output value
- All Superinterfaces:
RMapReduceExecutor<VIn,KOut,VOut>
- All Known Implementing Classes:
RedissonMapReduce
public interface RMapReduce<KIn,VIn,KOut,VOut> extends RMapReduceExecutor<VIn,KOut,VOut>
MapReduce allows to process large amount of data stored in Redis map using Mapper, Reducer and/or Collator tasks launched across Redisson Nodes.Usage example:
public class WordMapper implements RMapper<String, String, String, Integer> { public void map(String key, 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; } } RMap<String, String> map = redisson.getMap("myWords"); Map<String, Integer> wordsCount = map.<String, Integer>mapReduce() .mapper(new WordMapper()) .reducer(new WordReducer()) .execute(); Integer totalCount = map.<String, Integer>mapReduce() .mapper(new WordMapper()) .reducer(new WordReducer()) .execute(new WordCollator());- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description RMapReduce<KIn,VIn,KOut,VOut>mapper(RMapper<KIn,VIn,KOut,VOut> mapper)Setup Mapper objectRMapReduce<KIn,VIn,KOut,VOut>reducer(RReducer<KOut,VOut> reducer)Setup Reducer objectRMapReduce<KIn,VIn,KOut,VOut>timeout(long timeout, TimeUnit unit)Defines timeout for MapReduce process.-
Methods inherited from interface org.redisson.api.mapreduce.RMapReduceExecutor
execute, execute, execute, executeAsync, executeAsync, executeAsync
-
-
-
-
Method Detail
-
timeout
RMapReduce<KIn,VIn,KOut,VOut> timeout(long timeout, TimeUnit unit)
Defines timeout for MapReduce process.0means infinity timeout.- Parameters:
timeout- for processunit- of timeout- Returns:
- self instance
-
mapper
RMapReduce<KIn,VIn,KOut,VOut> mapper(RMapper<KIn,VIn,KOut,VOut> mapper)
Setup Mapper object- Parameters:
mapper- used during MapReduce- Returns:
- self instance
-
-