@Override
  public boolean next(Text rowKey, AccumuloHiveRow row) throws IOException {
    Text key = recordReader.createKey();
    PeekingIterator<Map.Entry<Key,Value>> iter = recordReader.createValue();
    if (recordReader.next(key, iter)) {
      row.clear();
      row.setRowId(key.toString());
      List<Key> keys = Lists.newArrayList();
      List<Value> values = Lists.newArrayList();
      while (iter.hasNext()) { // collect key/values for this row.
        Map.Entry<Key,Value> kv = iter.next();
        keys.add(kv.getKey());
        values.add(kv.getValue());

      }
      if (iteratorCount == 0) { // no encoded values, we can push directly to row.
        pushToValue(keys, values, row);
      } else {
        for (int i = 0; i < iteratorCount; i++) { // each iterator creates a level of encoding.
          SortedMap<Key,Value> decoded = PrimitiveComparisonFilter.decodeRow(keys.get(0),
              values.get(0));
          keys = Lists.newArrayList(decoded.keySet());
          values = Lists.newArrayList(decoded.values());
        }
        pushToValue(keys, values, row); // after decoding we can push to value.
      }

      return true;
    } else {
      return false;
    }
  }
Translate the {@link Key} {@link Value} pairs from {@link AccumuloInputFormat} to a
{@link Writable} for consumption by the {@link AccumuloSerDe}.
accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/mr/HiveAccumuloRecordReader.java