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

java.lang.Object
  extended by org.apache.hadoop.mapred.join.CompositeRecordReader<K,Writable,TupleWritable>
      extended by org.apache.hadoop.mapred.join.JoinRecordReader<K>
All Implemented Interfaces:
Configurable
Direct Known Subclasses:
InnerJoinRecordReader, OuterJoinRecordReader

public abstract class JoinRecordReader<K extends WritableComparable>
extends CompositeRecordReader<K,Writable,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
 void accept(org.apache.hadoop.mapred.join.CompositeRecordReader.JoinCollector jc, K key)
          While key-value pairs from this RecordReader match the given key, register them with the JoinCollector provided.
 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 hasNext()
          Returns true if the stream is not empty, but provides no guarantee that a call to next(K,V) will succeed.
 int id()
          Return the position in the collector this class occupies.
 K key()
          Return the key this RecordReader would supply on a call to next(K,V)
 void key(K key)
          Clone the key at the head of this RecordReader into the object provided.
 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.
 void skip(K key)
          Skip key-value pairs with keys less than or equal to the key provided.
 
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.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.

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
See Also:
Writable.readFields(DataInput)

createValue

public TupleWritable createValue()
Create an object of the appropriate type to be used as a value.

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>

id

public int id()
Return the position in the collector this class occupies.


key

public K key()
Return the key this RecordReader would supply on a call to next(K,V)


key

public void key(K key)
         throws IOException
Clone the key at the head of this RecordReader into the object provided.

Throws:
IOException

hasNext

public boolean hasNext()
Returns true if the stream is not empty, but provides no guarantee that a call to next(K,V) will succeed.


skip

public void skip(K key)
          throws IOException
Skip key-value pairs with keys less than or equal to the key provided.

Throws:
IOException

accept

public void accept(org.apache.hadoop.mapred.join.CompositeRecordReader.JoinCollector jc,
                   K key)
            throws IOException
While key-value pairs from this RecordReader match the given key, register them with the JoinCollector provided.

Throws:
IOException


Copyright © 2006 The Apache Software Foundation