diff options
author | Reynold Xin <rxin@apache.org> | 2014-07-20 11:06:06 -0700 |
---|---|---|
committer | Reynold Xin <rxin@apache.org> | 2014-07-20 11:06:06 -0700 |
commit | fa51b0fb5bee95a402c7b7f13dcf0b46cf5bb429 (patch) | |
tree | 2c3ce13c4f7fd5e3ad1dbad6cd4201bdd0f47834 /core/src/test | |
parent | 98ab4112255d4e0fdb6e084bd3fe65807c5b209b (diff) | |
download | spark-fa51b0fb5bee95a402c7b7f13dcf0b46cf5bb429.tar.gz spark-fa51b0fb5bee95a402c7b7f13dcf0b46cf5bb429.tar.bz2 spark-fa51b0fb5bee95a402c7b7f13dcf0b46cf5bb429.zip |
[SPARK-2598] RangePartitioner's binary search does not use the given Ordering
We should fix this in branch-1.0 as well.
Author: Reynold Xin <rxin@apache.org>
Closes #1500 from rxin/rangePartitioner and squashes the following commits:
c0a94f5 [Reynold Xin] [SPARK-2598] RangePartitioner's binary search does not use the given Ordering.
Diffstat (limited to 'core/src/test')
-rw-r--r-- | core/src/test/scala/org/apache/spark/PartitioningSuite.scala | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/src/test/scala/org/apache/spark/PartitioningSuite.scala b/core/src/test/scala/org/apache/spark/PartitioningSuite.scala index 7c30626a0c..4658a08064 100644 --- a/core/src/test/scala/org/apache/spark/PartitioningSuite.scala +++ b/core/src/test/scala/org/apache/spark/PartitioningSuite.scala @@ -91,6 +91,17 @@ class PartitioningSuite extends FunSuite with SharedSparkContext with PrivateMet } } + test("RangePartitioner for keys that are not Comparable (but with Ordering)") { + // Row does not extend Comparable, but has an implicit Ordering defined. + implicit object RowOrdering extends Ordering[Row] { + override def compare(x: Row, y: Row) = x.value - y.value + } + + val rdd = sc.parallelize(1 to 4500).map(x => (Row(x), Row(x))) + val partitioner = new RangePartitioner(1500, rdd) + partitioner.getPartition(Row(100)) + } + test("HashPartitioner not equal to RangePartitioner") { val rdd = sc.parallelize(1 to 10).map(x => (x, x)) val rangeP2 = new RangePartitioner(2, rdd) @@ -177,3 +188,6 @@ class PartitioningSuite extends FunSuite with SharedSparkContext with PrivateMet // Add other tests here for classes that should be able to handle empty partitions correctly } } + + +private sealed case class Row(value: Int) |