aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-07-30 01:04:24 -0700
committerReynold Xin <rxin@databricks.com>2015-07-30 01:04:24 -0700
commit4a8bb9d00d8181aff5f5183194d9aa2a65deacdf (patch)
tree8ba07a935861132fe5e83aa10c73283308ba716e /core/src/main/java
parent76f2e393a5fad0db8b56c4b8dad5ef686bf140a4 (diff)
downloadspark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.tar.gz
spark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.tar.bz2
spark-4a8bb9d00d8181aff5f5183194d9aa2a65deacdf.zip
Revert "[SPARK-9458] Avoid object allocation in prefix generation."
This reverts commit 9514d874f0cf61f1eb4ec4f5f66e053119f769c9.
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java b/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java
index a9ee6042fe..600aff7d15 100644
--- a/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java
+++ b/core/src/main/java/org/apache/spark/util/collection/unsafe/sort/PrefixComparators.java
@@ -29,6 +29,7 @@ public class PrefixComparators {
public static final StringPrefixComparator STRING = new StringPrefixComparator();
public static final IntegralPrefixComparator INTEGRAL = new IntegralPrefixComparator();
+ public static final FloatPrefixComparator FLOAT = new FloatPrefixComparator();
public static final DoublePrefixComparator DOUBLE = new DoublePrefixComparator();
public static final class StringPrefixComparator extends PrefixComparator {
@@ -54,6 +55,21 @@ public class PrefixComparators {
public final long NULL_PREFIX = Long.MIN_VALUE;
}
+ public static final class FloatPrefixComparator extends PrefixComparator {
+ @Override
+ public int compare(long aPrefix, long bPrefix) {
+ float a = Float.intBitsToFloat((int) aPrefix);
+ float b = Float.intBitsToFloat((int) bPrefix);
+ return Utils.nanSafeCompareFloats(a, b);
+ }
+
+ public long computePrefix(float value) {
+ return Float.floatToIntBits(value) & 0xffffffffL;
+ }
+
+ public final long NULL_PREFIX = computePrefix(Float.NEGATIVE_INFINITY);
+ }
+
public static final class DoublePrefixComparator extends PrefixComparator {
@Override
public int compare(long aPrefix, long bPrefix) {