@InterfaceAudience.Public @InterfaceStability.Stable public interface WritableComparable<T> extends Writable, Comparable<T>
Writable which is also Comparable. 
 WritableComparables can be compared to each other, typically 
 via Comparators. Any type which is to be used as a 
 key in the Hadoop Map-Reduce framework should implement this
 interface.
Note that hashCode() is frequently used in Hadoop to partition
 keys. It's important that your implementation of hashCode() returns the same 
 result across different instances of the JVM. Note also that the default 
 hashCode() implementation in Object does not
 satisfy this property.
Example:
     public class MyWritableComparable implements
      WritableComparable <MyWritableComparable> {
       // Some data
       private int counter;
       private long timestamp;
       
       public void write(DataOutput out) throws IOException {
         out.writeInt(counter);
         out.writeLong(timestamp);
       }
       
       public void readFields(DataInput in) throws IOException {
         counter = in.readInt();
         timestamp = in.readLong();
       }
       
       public int compareTo(MyWritableComparable o) {
         int thisValue = this.value;
         int thatValue = o.value;
         return (thisValue < thatValue ? -1 : (thisValue==thatValue ? 0 : 1));
       }
       public int hashCode() {
         final int prime = 31;
         int result = 1;
         result = prime * result + counter;
         result = prime * result + (int) (timestamp ^ (timestamp >>> 32));
         return result
       }
     }
 readFields, writecompareToCopyright © 2023 Apache Software Foundation. All rights reserved.