package nyse.comparators; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.WritableComparator; import org.apache.hadoop.io.WritableUtils; import nyse.keyvalues.LongPair; public class FirstFieldLongPairGroupingComparator extends WritableComparator { private static final LongWritable.Comparator LONGWRITABLE_COMPARATOR = new LongWritable.Comparator(); public FirstFieldLongPairGroupingComparator() { super(LongPair.class); } public int compare(byte[] firstObjBytes, int firstFieldByteAddr, int firstObjLen, byte[]secondObjBytes, int secondFieldByteAddr, int secondObjLen) { try { int firstFieldLen = WritableUtils.decodeVIntSize(firstObjBytes[firstFieldByteAddr]) + readVInt(firstObjBytes, firstFieldByteAddr); int secondFieldLen = WritableUtils.decodeVIntSize(secondObjBytes[secondFieldByteAddr]) + readVInt(secondObjBytes, secondFieldByteAddr); int cmp = LONGWRITABLE_COMPARATOR.compare(firstObjBytes, firstFieldByteAddr, firstFieldLen, secondObjBytes, secondFieldByteAddr, secondFieldLen); return cmp; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; } }