From 75e12059ef42d88749bf4500b936fdd8ed8d2aa4 Mon Sep 17 00:00:00 2001 From: tpoterba Date: Fri, 21 Jul 2017 12:57:58 -0400 Subject: [PATCH 1/2] Fixed the test, finally --- src/main/c/lib/darwin/libibs.dylib | Bin 14576 -> 0 bytes .../libibs.dylib.dSYM/Contents/Info.plist | 20 ----------- .../Contents/Resources/DWARF/libibs.dylib | Bin 101573 -> 0 bytes .../is/hail/sparkextras/OrderedRDD.scala | 33 +++++++----------- .../scala/is/hail/utils/OrderedRDDSuite.scala | 12 +++++-- 5 files changed, 21 insertions(+), 44 deletions(-) delete mode 100755 src/main/c/lib/darwin/libibs.dylib delete mode 100644 src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist delete mode 100644 src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib diff --git a/src/main/c/lib/darwin/libibs.dylib b/src/main/c/lib/darwin/libibs.dylib deleted file mode 100755 index 0416f1d899e1e9c7030e7305480452a3341aed4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14576 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 Q{DT@GIQzd1IR&x*20^7cWdHyG diff --git a/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist b/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist deleted file mode 100644 index 51b96b57c960..000000000000 --- a/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.apple.xcode.dsym.libibs.dylib - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - dSYM - CFBundleSignature - ???? - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib b/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib deleted file mode 100644 index be5be57ab82a49026160f4fc404d2f13269a57e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101573 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 VH-) } - + val keys = fastKeys.getOrElse(rdd.map(_._1)) val keyInfo = keys.mapPartitionsWithIndex { case (i, it) => @@ -87,8 +86,8 @@ object OrderedRDD { r } - if (partitionsSorted) { - val sortedness = sortedKeyInfo.map(_.sortedness).min + val sortedness = sortedKeyInfo.map(_.sortedness).min + if (partitionsSorted && sortedness >= PartitionKeyInfo.TSORTED) { val (adjustedPartitions, rangeBounds, adjSortedness) = rangesAndAdjustments[PK, K, V](sortedKeyInfo, sortedness) val partitioner = OrderedPartitioner[PK, K](rangeBounds, adjustedPartitions.length) val reorderedPartitionsRDD = rdd.reorderPartitions(sortedKeyInfo.map(_.partIndex)) @@ -103,12 +102,6 @@ object OrderedRDD { (LOCAL_SORT, OrderedRDD(adjustedRDD.mapPartitions { it => localKeySort(it) }, partitioner)) - - case PartitionKeyInfo.UNSORTED => - info("Coerced unsorted dataset") - (ARRAY_SORT, OrderedRDD(adjustedRDD.mapPartitions { it => - it.toArray.sortBy(_._1).iterator - }, partitioner)) } } else { info("Ordering unsorted dataset with network shuffle") @@ -160,19 +153,17 @@ object OrderedRDD { } val adjustments = indicesBuilder.result().zipWithIndex.map { case (partitionIndex, index) => + assert(sortedKeyInfo(partitionIndex).sortedness >= PartitionKeyInfo.TSORTED) val f: (Iterator[(K, V)]) => Iterator[(K, V)] = + // In the first partition, drop elements that should go in the last if necessary if (index == 0) if (adjustmentsBuffer.nonEmpty && min == sortedKeyInfo(adjustmentsBuffer.last.head.index).max) - if (sortedKeyInfo(partitionIndex).sortedness >= PartitionKeyInfo.TSORTED) // PK sorted, so can use dropWhile - _.dropWhile(kv => kOk.project(kv._1) == min) - else - _.filter(kv => kOk.project(kv._1) != min) + _.dropWhile(kv => kOk.project(kv._1) == min) else identity - else if (sortedKeyInfo(partitionIndex).sortedness >= PartitionKeyInfo.TSORTED) // PK sorted, so can use takeWhile - _.takeWhile(kv => kOk.project(kv._1) == max) else - _.filter(kv => kOk.project(kv._1) == max) + // In every subsequent partition, only take elements that are the max of the last + _.takeWhile(kv => kOk.project(kv._1) == max) Adjustment(partitionIndex, f) } @@ -190,12 +181,12 @@ object OrderedRDD { def apply[PK, K, V](rdd: RDD[(K, V)], orderedPartitioner: OrderedPartitioner[PK, K]) (implicit kOk: OrderedKey[PK, K], vct: ClassTag[V]): OrderedRDD[PK, K, V] = { - assert(rdd.partitions.length == orderedPartitioner.numPartitions, s"${rdd.partitions.length} != ${orderedPartitioner.numPartitions}") + assert(rdd.partitions.length == orderedPartitioner.numPartitions, s"${ rdd.partitions.length } != ${ orderedPartitioner.numPartitions }") import kOk._ import Ordering.Implicits._ - + val rangeBoundsBc = rdd.sparkContext.broadcast(orderedPartitioner.rangeBounds) new OrderedRDD( rdd.mapPartitionsWithIndex { case (i, it) => @@ -217,7 +208,7 @@ object OrderedRDD { if (first) first = false else - assert(prevK <= r._1, s"$prevK is greater than ${r._1}") + assert(prevK <= r._1, s"$prevK is greater than ${ r._1 }") prevK = r._1 r diff --git a/src/test/scala/is/hail/utils/OrderedRDDSuite.scala b/src/test/scala/is/hail/utils/OrderedRDDSuite.scala index 1a95b722b93a..2ba5e435b3d3 100644 --- a/src/test/scala/is/hail/utils/OrderedRDDSuite.scala +++ b/src/test/scala/is/hail/utils/OrderedRDDSuite.scala @@ -35,7 +35,7 @@ class OrderedRDDSuite extends SparkSuite { val locusSorted = for ((n, v) <- g; locusSorted <- Gen.const(v.sortBy(_._1.locus))) yield sc.parallelize(locusSorted, n) - val scrambledInPartition = locusSorted.map(_.mapPartitions { it => Gen.shuffle(it.toIndexedSeq).sample().iterator }) + val scrambledInPartition = locusSorted.map(_.mapPartitions { it => it.toArray.reverseIterator }) val sorted = for ((n, v) <- g; sorted <- Gen.const(v.sortBy(_._1))) yield sc.parallelize(sorted, n) @@ -63,7 +63,13 @@ class OrderedRDDSuite extends SparkSuite { .foldLeft((true, first)) { case ((b, last), (start, end)) => (b && start > last, end) }._1 - sortedWithin && partitionedCorrectly && sortedBetween + val p = sortedWithin && partitionedCorrectly && sortedBetween + if (!p) { + println(s"sortedWithin: $sortedWithin") + println(s"sortedBetween: $sortedBetween") + println(s"partitionedCorrectly: $partitionedCorrectly") + } + p case None => true } @@ -150,7 +156,7 @@ class OrderedRDDSuite extends SparkSuite { property("scrambledInPartition") = Prop.forAll(scrambledInPartition) { rdd => val (status, ordered) = OrderedRDD.coerce(rdd) - check(ordered, rdd) && status <= OrderedRDD.ARRAY_SORT + check(ordered, rdd) && status <= OrderedRDD.SHUFFLE } property("locusSorted") = Prop.forAll(locusSorted) { rdd => From 1e02edd7888157d905c4ff2c416a0962b699df9e Mon Sep 17 00:00:00 2001 From: tpoterba Date: Fri, 21 Jul 2017 13:40:36 -0400 Subject: [PATCH 2/2] Fixed the test, finally --- src/main/c/lib/darwin/libibs.dylib | Bin 0 -> 14576 bytes .../libibs.dylib.dSYM/Contents/Info.plist | 20 ++++++++++++++++++ .../Contents/Resources/DWARF/libibs.dylib | Bin 0 -> 101573 bytes 3 files changed, 20 insertions(+) create mode 100755 src/main/c/lib/darwin/libibs.dylib create mode 100644 src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist create mode 100644 src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib diff --git a/src/main/c/lib/darwin/libibs.dylib b/src/main/c/lib/darwin/libibs.dylib new file mode 100755 index 0000000000000000000000000000000000000000..0416f1d899e1e9c7030e7305480452a3341aed4f GIT binary patch literal 14576 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 Q{DT@GIQzd1IR&x*20^7cWdHyG literal 0 HcmV?d00001 diff --git a/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist b/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist new file mode 100644 index 000000000000..51b96b57c960 --- /dev/null +++ b/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.libibs.dylib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib b/src/main/c/lib/darwin/libibs.dylib.dSYM/Contents/Resources/DWARF/libibs.dylib new file mode 100644 index 0000000000000000000000000000000000000000..be5be57ab82a49026160f4fc404d2f13269a57e4 GIT binary patch literal 101573 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 VH-)