Class TupleWritable

java.lang.Object
org.apache.hadoop.mapreduce.lib.join.TupleWritable
All Implemented Interfaces:
Iterable<Writable>, Writable
Direct Known Subclasses:
TupleWritable

@Public @Stable public class TupleWritable extends Object implements Writable, Iterable<Writable>
Writable type storing multiple Writables. This is *not* a general-purpose tuple type. In almost all cases, users are encouraged to implement their own serializable types, which can perform better validation and provide more efficient encodings than this class is capable. TupleWritable relies on the join framework for type safety and assumes its instances will rarely be persisted, assumptions not only incompatible with, but contrary to the general case.
See Also:
  • Field Details

    • written

      protected BitSet written
  • Constructor Details

    • TupleWritable

      public TupleWritable()
      Create an empty tuple with no allocated storage for writables.
    • TupleWritable

      public TupleWritable(Writable[] vals)
      Initialize tuple with storage; unknown whether any of them contain "written" values.
  • Method Details

    • has

      public boolean has(int i)
      Return true if tuple has an element at the position provided.
    • get

      public Writable get(int i)
      Get ith Writable from Tuple.
    • size

      public int size()
      The number of children in this Tuple.
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • iterator

      public Iterator<Writable> iterator()
      Return an iterator over the elements in this tuple. Note that this doesn't flatten the tuple; one may receive tuples from this iterator.
      Specified by:
      iterator in interface Iterable<Writable>
    • toString

      public String toString()
      Convert Tuple to String as in the following. [<child1>,<child2>,...,<childn>]
      Overrides:
      toString in class Object
    • write

      public void write(DataOutput out) throws IOException
      Writes each Writable to out. TupleWritable format: <count><type1><type2>...<typen><obj1><obj2>...<objn>
      Specified by:
      write in interface Writable
      Parameters:
      out - DataOuput to serialize this object into.
      Throws:
      IOException - any other problem for write.
    • readFields

      public void readFields(DataInput in) throws IOException
      Deserialize the fields of this object from in.

      For efficiency, implementations should attempt to re-use storage in the existing object where possible.

      Specified by:
      readFields in interface Writable
      Parameters:
      in - DataInput to deseriablize this object from.
      Throws:
      IOException - any other problem for readFields.