@InterfaceAudience.Public @InterfaceStability.Stable public class WritableComparator extends Object implements RawComparator, Configurable
WritableComparable
s.
This base implemenation uses the natural ordering. To define alternate
orderings, override compare(WritableComparable,WritableComparable)
.
One may optimize compare-intensive operations by overriding
compare(byte[],int,int,byte[],int,int)
. Static utility methods are
provided to assist in optimized implementations of this method.
Modifier | Constructor and Description |
---|---|
protected |
WritableComparator() |
protected |
WritableComparator(Class<? extends WritableComparable> keyClass)
Construct for a
WritableComparable implementation. |
protected |
WritableComparator(Class<? extends WritableComparable> keyClass,
boolean createInstances) |
protected |
WritableComparator(Class<? extends WritableComparable> keyClass,
Configuration conf,
boolean createInstances) |
Modifier and Type | Method and Description |
---|---|
int |
compare(byte[] b1,
int s1,
int l1,
byte[] b2,
int s2,
int l2)
Optimization hook.
|
int |
compare(Object a,
Object b) |
int |
compare(WritableComparable a,
WritableComparable b)
Compare two WritableComparables.
|
static int |
compareBytes(byte[] b1,
int s1,
int l1,
byte[] b2,
int s2,
int l2)
Lexicographic order of binary data.
|
static void |
define(Class c,
WritableComparator comparator)
Register an optimized comparator for a
WritableComparable
implementation. |
static WritableComparator |
get(Class<? extends WritableComparable> c)
For backwards compatibility.
|
static WritableComparator |
get(Class<? extends WritableComparable> c,
Configuration conf)
Get a comparator for a
WritableComparable implementation. |
Configuration |
getConf()
Return the configuration used by this object.
|
Class<? extends WritableComparable> |
getKeyClass()
Returns the WritableComparable implementation class.
|
static int |
hashBytes(byte[] bytes,
int length)
Compute hash for binary data.
|
static int |
hashBytes(byte[] bytes,
int offset,
int length)
Compute hash for binary data.
|
WritableComparable |
newKey()
Construct a new
WritableComparable instance. |
static double |
readDouble(byte[] bytes,
int start)
Parse a double from a byte array.
|
static float |
readFloat(byte[] bytes,
int start)
Parse a float from a byte array.
|
static int |
readInt(byte[] bytes,
int start)
Parse an integer from a byte array.
|
static long |
readLong(byte[] bytes,
int start)
Parse a long from a byte array.
|
static int |
readUnsignedShort(byte[] bytes,
int start)
Parse an unsigned short from a byte array.
|
static int |
readVInt(byte[] bytes,
int start)
Reads a zero-compressed encoded integer from a byte array and returns it.
|
static long |
readVLong(byte[] bytes,
int start)
Reads a zero-compressed encoded long from a byte array and returns it.
|
void |
setConf(Configuration conf)
Set the configuration to be used by this object.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
protected WritableComparator()
protected WritableComparator(Class<? extends WritableComparable> keyClass)
WritableComparable
implementation.protected WritableComparator(Class<? extends WritableComparable> keyClass, boolean createInstances)
protected WritableComparator(Class<? extends WritableComparable> keyClass, Configuration conf, boolean createInstances)
public static WritableComparator get(Class<? extends WritableComparable> c)
public static WritableComparator get(Class<? extends WritableComparable> c, Configuration conf)
WritableComparable
implementation.public void setConf(Configuration conf)
Configurable
setConf
in interface Configurable
public Configuration getConf()
Configurable
getConf
in interface Configurable
public static void define(Class c, WritableComparator comparator)
WritableComparable
implementation. Comparators registered with this method must be
thread-safe.public Class<? extends WritableComparable> getKeyClass()
public WritableComparable newKey()
WritableComparable
instance.public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2)
The default implementation reads the data into two WritableComparable
s (using Writable.readFields(DataInput)
, then calls compare(WritableComparable,WritableComparable)
.
compare
in interface RawComparator
b1
- The first byte array.s1
- The position index in b1. The object under comparison's starting index.l1
- The length of the object in b1.b2
- The second byte array.s2
- The position index in b2. The object under comparison's starting index.l2
- The length of the object under comparison in b2.public int compare(WritableComparable a, WritableComparable b)
The default implementation uses the natural ordering, calling Comparable.compareTo(Object)
.
public int compare(Object a, Object b)
compare
in interface Comparator
public static int compareBytes(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2)
public static int hashBytes(byte[] bytes, int offset, int length)
public static int hashBytes(byte[] bytes, int length)
public static int readUnsignedShort(byte[] bytes, int start)
public static int readInt(byte[] bytes, int start)
public static float readFloat(byte[] bytes, int start)
public static long readLong(byte[] bytes, int start)
public static double readDouble(byte[] bytes, int start)
public static long readVLong(byte[] bytes, int start) throws IOException
bytes
- byte array with decode longstart
- starting indexIOException
public static int readVInt(byte[] bytes, int start) throws IOException
bytes
- byte array with the encoded integerstart
- start indexIOException
Copyright © 2018 Apache Software Foundation. All rights reserved.