diff --git a/src/scala/spark/DfsShuffle.scala b/src/scala/spark/DfsShuffle.scala index a100ddf05b80cb1eda33c78d2986233fa9a4568e..e751e1bd7511addeb12f738df47b6ba4b63c2c46 100644 --- a/src/scala/spark/DfsShuffle.scala +++ b/src/scala/spark/DfsShuffle.scala @@ -84,7 +84,10 @@ extends Logging new ObjectOutputStream(fs.create(path, true)) }).toArray for ((k, c) <- combiners) { - val bucket = k.hashCode % numOutputSplits + var bucket = k.hashCode % numOutputSplits + if (bucket < 0) { + bucket += numOutputSplits + } outputStreams(bucket).writeObject((k, c)) } outputStreams.foreach(_.close())