In many cases when I work with Map Reduce my mapper or my reducer might take a single value and map it to multiple keys - The reducer might also take a single key and emit multiple values
I don't think that functions like flatMap and reduceByKey will work or are there tricks I am not aware of