org.apache.hadoop.mapred.lib
Class KeyFieldBasedComparator<K,V>

java.lang.Object
  extended by org.apache.hadoop.io.WritableComparator
      extended by org.apache.hadoop.mapred.lib.KeyFieldBasedComparator<K,V>
All Implemented Interfaces:
Comparator, RawComparator, JobConfigurable

public class KeyFieldBasedComparator<K,V>
extends WritableComparator
implements JobConfigurable

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 map.output.key.field.separator.


Constructor Summary
KeyFieldBasedComparator()
           
 
Method Summary
 int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2)
          Optimization hook.
 void configure(JobConf job)
          Initializes a new instance from a JobConf.
 
Methods inherited from class org.apache.hadoop.io.WritableComparator
compare, compare, compareBytes, define, get, getKeyClass, hashBytes, hashBytes, newKey, readDouble, readFloat, readInt, readLong, readUnsignedShort, readVInt, readVLong
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

KeyFieldBasedComparator

public KeyFieldBasedComparator()
Method Detail

configure

public void configure(JobConf job)
Description copied from interface: JobConfigurable
Initializes a new instance from a JobConf.

Specified by:
configure in interface JobConfigurable
Parameters:
job - the configuration

compare

public int compare(byte[] b1,
                   int s1,
                   int l1,
                   byte[] b2,
                   int s2,
                   int l2)
Description copied from class: WritableComparator
Optimization hook. Override this to make SequenceFile.Sorter's scream.

The default implementation reads the data into two WritableComparables (using Writable.readFields(DataInput), then calls WritableComparator.compare(WritableComparable,WritableComparable).

Specified by:
compare in interface RawComparator
Overrides:
compare in class WritableComparator


Copyright © 2009 The Apache Software Foundation