org.apache.hadoop.mapreduce.lib.input
Class KeyValueLineRecordReader

java.lang.Object
  extended by org.apache.hadoop.mapreduce.RecordReader<Text,Text>
      extended by org.apache.hadoop.mapreduce.lib.input.KeyValueLineRecordReader
All Implemented Interfaces:
Closeable

@InterfaceAudience.Public
@InterfaceStability.Stable
public class KeyValueLineRecordReader
extends RecordReader<Text,Text>

This class treats a line in the input as a key/value pair separated by a separator character. The separator can be specified in config file under the attribute name mapreduce.input.keyvaluelinerecordreader.key.value.separator. The default separator is the tab character ('\t').


Field Summary
static String KEY_VALUE_SEPERATOR
           
 
Constructor Summary
KeyValueLineRecordReader(Configuration conf)
           
 
Method Summary
 void close()
          Close the record reader.
static int findSeparator(byte[] utf, int start, int length, byte sep)
           
 Text getCurrentKey()
          Get the current key
 Text getCurrentValue()
          Get the current value.
 Class getKeyClass()
           
 float getProgress()
          The current progress of the record reader through its data.
 void initialize(InputSplit genericSplit, TaskAttemptContext context)
          Called once at initialization.
 boolean nextKeyValue()
          Read key/value pair in a line.
static void setKeyValue(Text key, Text value, byte[] line, int lineLen, int pos)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_VALUE_SEPERATOR

public static final String KEY_VALUE_SEPERATOR
See Also:
Constant Field Values
Constructor Detail

KeyValueLineRecordReader

public KeyValueLineRecordReader(Configuration conf)
                         throws IOException
Throws:
IOException
Method Detail

getKeyClass

public Class getKeyClass()

initialize

public void initialize(InputSplit genericSplit,
                       TaskAttemptContext context)
                throws IOException
Description copied from class: RecordReader
Called once at initialization.

Specified by:
initialize in class RecordReader<Text,Text>
Parameters:
genericSplit - the split that defines the range of records to read
context - the information about the task
Throws:
IOException

findSeparator

public static int findSeparator(byte[] utf,
                                int start,
                                int length,
                                byte sep)

setKeyValue

public static void setKeyValue(Text key,
                               Text value,
                               byte[] line,
                               int lineLen,
                               int pos)

nextKeyValue

public boolean nextKeyValue()
                     throws IOException
Read key/value pair in a line.

Specified by:
nextKeyValue in class RecordReader<Text,Text>
Returns:
true if a key/value pair was read
Throws:
IOException

getCurrentKey

public Text getCurrentKey()
Description copied from class: RecordReader
Get the current key

Specified by:
getCurrentKey in class RecordReader<Text,Text>
Returns:
the current key or null if there is no current key

getCurrentValue

public Text getCurrentValue()
Description copied from class: RecordReader
Get the current value.

Specified by:
getCurrentValue in class RecordReader<Text,Text>
Returns:
the object that was read

getProgress

public float getProgress()
                  throws IOException
Description copied from class: RecordReader
The current progress of the record reader through its data.

Specified by:
getProgress in class RecordReader<Text,Text>
Returns:
a number between 0.0 and 1.0 that is the fraction of the data read
Throws:
IOException

close

public void close()
           throws IOException
Description copied from class: RecordReader
Close the record reader.

Specified by:
close in interface Closeable
Specified by:
close in class RecordReader<Text,Text>
Throws:
IOException


Copyright © 2009 The Apache Software Foundation