private void prepKeys() throws IOException { long kvBufSize = 0; if (topKey != null) return; Text currentRow; do { if (!sourceIter.hasTop()) return; currentRow = new Text(sourceIter.getTopKey().getRow()); keys.clear(); values.clear(); while (sourceIter.hasTop() && sourceIter.getTopKey().getRow().equals(currentRow)) { Key sourceTopKey = sourceIter.getTopKey(); Value sourceTopValue = sourceIter.getTopValue(); keys.add(new Key(sourceTopKey)); values.add(new Value(sourceTopValue)); kvBufSize += sourceTopKey.getSize() + sourceTopValue.getSize() + 128; if (kvBufSize > maxBufferSize) { throw new BufferOverflowException( "Exceeded buffer size of " + maxBufferSize + " for row: " + sourceTopKey.getRow()); } sourceIter.next(); } } while (!filter(currentRow, keys, values)); topKey = new Key(currentRow); topValue = rowEncoder(keys, values); }
private void prepKeys() throws IOException { long kvBufSize = 0; if (topKey != null) return; Text currentRow; do { if (sourceIter.hasTop() == false) return; currentRow = new Text(sourceIter.getTopKey().getRow()); keys.clear(); values.clear(); while (sourceIter.hasTop() && sourceIter.getTopKey().getRow().equals(currentRow)) { Key sourceTopKey = sourceIter.getTopKey(); Value sourceTopValue = sourceIter.getTopValue(); keys.add(new Key(sourceTopKey)); values.add(new Value(sourceTopValue)); kvBufSize += sourceTopKey.getSize() + sourceTopValue.getSize() + 128; if (kvBufSize > maxBufferSize) { throw new BufferOverflowException("Exceeded buffer size of " + maxBufferSize + " for row: " + sourceTopKey.getRow().toString()); } sourceIter.next(); } } while (!filter(currentRow, keys, values)); topKey = new Key(currentRow); topValue = rowEncoder(keys, values); }