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

    java.lang.Object
      org.apache.hadoop.io.WritableComparator
          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 `WritableComparable`s (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