diff --git a/core/src/main/scala/spark/Partitioner.scala b/core/src/main/scala/spark/Partitioner.scala index 0e45ebd35cfb3954871216d901823c1f2133ace0..475da17de5a93d8cd277da77300c327d65dc7485 100644 --- a/core/src/main/scala/spark/Partitioner.scala +++ b/core/src/main/scala/spark/Partitioner.scala @@ -8,12 +8,16 @@ abstract class Partitioner extends Serializable { class HashPartitioner(partitions: Int) extends Partitioner { def numPartitions = partitions - def getPartition(key: Any) = { - val mod = key.hashCode % partitions - if (mod < 0) { - mod + partitions + def getPartition(key: Any): Int = { + if (key == null) { + return 0 } else { - mod // Guard against negative hash codes + val mod = key.hashCode % partitions + if (mod < 0) { + mod + partitions + } else { + mod // Guard against negative hash codes + } } }