## org.apache.hadoop.mapred.join
Class JoinRecordReader<K extends WritableComparable>

    java.lang.Object
      org.apache.hadoop.mapred.join.CompositeRecordReader<K,Writable,TupleWritable>
          org.apache.hadoop.mapred.join.JoinRecordReader<K>

All Implemented Interfaces:
  Comparable<ComposableRecordReader<K,?>>, Configurable, ComposableRecordReader<K,TupleWritable>, RecordReader<K,TupleWritable>

Direct Known Subclasses:
  InnerJoinRecordReader, OuterJoinRecordReader

    public abstract class JoinRecordReader<K extends WritableComparable>

extends CompositeRecordReader<K,Writable,TupleWritable>
implements ComposableRecordReader<K,TupleWritable>

Base class for Composite joins returning Tuples of arbitrary Writables.

Nested Class Summary
`protected class` `JoinRecordReader.JoinDelegationIterator` Since the JoinCollector is effecting our operation, we need only provide an iterator proxy wrapping its operation.

Field Summary

Fields inherited from class org.apache.hadoop.mapred.join.CompositeRecordReader
`jc, kids`

Constructor Summary
`JoinRecordReader(int id, JobConf conf, int capacity, Class<? extends WritableComparator> cmpcl)`

Method Summary
`TupleWritable` `createValue()` Create an object of the appropriate type to be used as a value.
`protected ResetableIterator<TupleWritable>` `getDelegate()` Return an iterator wrapping the JoinCollector.
`boolean` `next(K key, TupleWritable value)` Emit the next set of key, value pairs as defined by the child RecordReaders and operation associated with this composite RR.

Methods inherited from class org.apache.hadoop.mapred.join.CompositeRecordReader
`accept, add, close, combine, compareTo, createInternalValue, createKey, fillJoinCollector, getComparator, getConf, getPos, getProgress, getRecordReaderQueue, hasNext, id, key, key, setConf, skip`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.hadoop.mapred.join.ComposableRecordReader
`accept, hasNext, id, key, key, skip`

Methods inherited from interface org.apache.hadoop.mapred.RecordReader
`close, createKey, getPos, getProgress`

Methods inherited from interface java.lang.Comparable
`compareTo`

Constructor Detail

### JoinRecordReader

    public JoinRecordReader(int id,
                            JobConf conf,
                            int capacity,
                            Class<? extends WritableComparator> cmpcl)
                     throws IOException

Throws:
  `IOException`

Method Detail

### next

    public boolean next(K key,
                        TupleWritable value)
                 throws IOException

  Emit the next set of key, value pairs as defined by the child RecordReaders and operation associated with this composite RR.

  Specified by:
    `next` in interface `RecordReader<K extends WritableComparable,TupleWritable>`
  Parameters:
    `key` - the key to read data into
    `value` - the value to read data into
  Returns:
    true iff a key/value was read, false if at EOF
  Throws:
    `IOException`

### createValue

    public TupleWritable createValue()

  Create an object of the appropriate type to be used as a value.

  Specified by:
    `createValue` in interface `RecordReader<K extends WritableComparable,TupleWritable>`
  Returns:
    a new value object.

### getDelegate

    protected ResetableIterator<TupleWritable> getDelegate()

  Return an iterator wrapping the JoinCollector.

  Specified by:
    `getDelegate` in class `CompositeRecordReader<K extends WritableComparable,Writable,TupleWritable>`

Copyright © 2009 The Apache Software Foundation