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
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
Modifier and TypeMethodDescriptionSetup Mapper objectSetup Reducer objectDefines timeout for MapReduce process.Methods inherited from interface org.redisson.api.mapreduce.RMapReduceExecutor
execute, execute, execute, executeAsync, executeAsync, executeAsync
-
Method Details
-
timeout
Defines timeout for MapReduce process.0means infinity timeout.- Parameters:
timeout- for processunit- of timeout- Returns:
- self instance
-
mapper
Setup Mapper object- Parameters:
mapper- used during MapReduce- Returns:
- self instance
-
reducer
Setup Reducer object- Parameters:
reducer- used during MapReduce- Returns:
- self instance
-