Class KeyFieldBasedComparator<K,V>
java.lang.Object
org.apache.hadoop.io.WritableComparator
org.apache.hadoop.mapreduce.lib.partition.KeyFieldBasedComparator<K,V>
- All Implemented Interfaces:
Comparator,Configurable,RawComparator
- Direct Known Subclasses:
KeyFieldBasedComparator
@Public
@Stable
public class KeyFieldBasedComparator<K,V>
extends WritableComparator
implements Configurable
This comparator implementation provides a subset of the features provided
by the Unix/GNU Sort. In particular, the supported features are:
-n, (Sort numerically)
-r, (Reverse the result of comparison)
-k pos1[,pos2], where pos is of the form f[.c][opts], where f is the number
of the field to use, and c is the number of the first character from the
beginning of the field. Fields and character posns are numbered starting
with 1; a character position of zero in pos2 indicates the field's last
character. If '.c' is omitted from pos1, it defaults to 1 (the beginning
of the field); if omitted from pos2, it defaults to 0 (the end of the
field). opts are ordering options (any of 'nr' as described above).
We assume that the fields in the key are separated by
MRJobConfig.MAP_OUTPUT_KEY_FIELD_SEPARATOR.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcompare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) Optimization hook.getConf()Return the configuration used by this object.static StringGet theKeyFieldBasedComparatoroptionsvoidsetConf(Configuration conf) Set the configuration to be used by this object.static voidsetKeyFieldComparatorOptions(Job job, String keySpec) Set theKeyFieldBasedComparatoroptions used to compare keys.Methods inherited from class org.apache.hadoop.io.WritableComparator
compare, compare, compareBytes, define, get, get, getKeyClass, hashBytes, hashBytes, newKey, readDouble, readFloat, readInt, readLong, readUnsignedShort, readVInt, readVLongMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
COMPARATOR_OPTIONS
-
-
Constructor Details
-
KeyFieldBasedComparator
public KeyFieldBasedComparator()
-
-
Method Details
-
setConf
Description copied from interface:ConfigurableSet the configuration to be used by this object.- Specified by:
setConfin interfaceConfigurable- Overrides:
setConfin classWritableComparator- Parameters:
conf- configuration to be used
-
getConf
Description copied from interface:ConfigurableReturn the configuration used by this object.- Specified by:
getConfin interfaceConfigurable- Overrides:
getConfin classWritableComparator- Returns:
- Configuration
-
compare
public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) Description copied from class:WritableComparatorOptimization hook. Override this to make SequenceFile.Sorter's scream.The default implementation reads the data into two
WritableComparables (usingWritable.readFields(DataInput), then callsWritableComparator.compare(WritableComparable,WritableComparable).- Specified by:
comparein interfaceRawComparator<K>- Overrides:
comparein classWritableComparator- Parameters:
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.- Returns:
- An integer result of the comparison.
-
setKeyFieldComparatorOptions
Set theKeyFieldBasedComparatoroptions used to compare keys.- Parameters:
keySpec- the key specification of the form -k pos1[,pos2], where, pos is of the form f[.c][opts], where f is the number of the key field to use, and c is the number of the first character from the beginning of the field. Fields and character posns are numbered starting with 1; a character position of zero in pos2 indicates the field's last character. If '.c' is omitted from pos1, it defaults to 1 (the beginning of the field); if omitted from pos2, it defaults to 0 (the end of the field). opts are ordering options. The supported options are: -n, (Sort numerically) -r, (Reverse the result of comparison)
-
getKeyFieldComparatorOption
Get theKeyFieldBasedComparatoroptions
-