Package org.apache.avro.mapreduce

# Class AvroKeyValueRecordReader<K,V>

java.lang.Object
org.apache.hadoop.mapreduce.RecordReader<AvroKey<K>,AvroValue<V>>
org.apache.avro.mapreduce.AvroRecordReaderBase<AvroKey<K>,AvroValue<V>,org.apache.avro.generic.GenericRecord>
org.apache.avro.mapreduce.AvroKeyValueRecordReader<K,V>

Type Parameters:
  `K` - The type of the Avro key to read.
  `V` - The type of the Avro value to read.

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class AvroKeyValueRecordReader<K,V> extends AvroRecordReaderBase<AvroKey<K>,AvroValue<V>,org.apache.avro.generic.GenericRecord>
Reads Avro generic records from an Avro container file, where the records contain two fields: 'key' and 'value'.

The contents of the 'key' field will be parsed into an AvroKey object. The contents of the 'value' field will be parsed into an AvroValue object.

## Constructor Summary

Constructors
Constructor
Description
`AvroKeyValueRecordReader(org.apache.avro.Schema keyReaderSchema, org.apache.avro.Schema valueReaderSchema)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`AvroKey<K>`
`getCurrentKey()`
`AvroValue<V>`
`getCurrentValue()`
`boolean`
`nextKeyValue()`

### Methods inherited from class org.apache.avro.mapreduce.AvroRecordReaderBase

`close, createAvroFileReader, createSeekableInput, getCurrentRecord, getProgress, initialize`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AvroKeyValueRecordReader

public AvroKeyValueRecordReader(org.apache.avro.Schema keyReaderSchema, org.apache.avro.Schema valueReaderSchema)
Constructor.

Parameters:
  `keyReaderSchema` - The reader schema for the key within the generic record.
  `valueReaderSchema` - The reader schema for the value within the generic record.

## Method Details

### nextKeyValue

public boolean nextKeyValue() throws IOException, InterruptedException

Overrides:
  `nextKeyValue` in class `AvroRecordReaderBase<AvroKey<K>,AvroValue<V>,org.apache.avro.generic.GenericRecord>`
Throws:
  `IOException`
  `InterruptedException`

### getCurrentKey

public AvroKey<K> getCurrentKey() throws IOException, InterruptedException

Specified by:
  `getCurrentKey` in class `RecordReader<AvroKey<K>,AvroValue<V>>`
Throws:
  `IOException`
  `InterruptedException`

### getCurrentValue

public AvroValue<V> getCurrentValue() throws IOException, InterruptedException

Specified by:
  `getCurrentValue` in class `RecordReader<AvroKey<K>,AvroValue<V>>`
Throws:
  `IOException`
  `InterruptedException`