public abstract class Combiner extends WrappingIterator implements OptionDescriber
public Value reduce(Key key, Iterator<Value> iter)
.
This reduce method will be passed the most recent Key and an iterator over the Values for all non-deleted versions of that Key.Modifier and Type | Class and Description |
---|---|
static class |
Combiner.ValueIterator
A Java Iterator that iterates over the Values for a given Key from a source SortedKeyValueIterator.
|
OptionDescriber.IteratorOptions
Modifier and Type | Field and Description |
---|---|
protected static String |
ALL_OPTION |
protected static String |
COLUMNS_OPTION |
Constructor and Description |
---|
Combiner() |
Modifier and Type | Method and Description |
---|---|
SortedKeyValueIterator<Key,Value> |
deepCopy(IteratorEnvironment env)
Creates a deep copy of this iterator as though seek had not yet been called.
|
OptionDescriber.IteratorOptions |
describeOptions()
Gets an iterator options object that contains information needed to configure this iterator.
|
Key |
getTopKey()
Returns top key.
|
Value |
getTopValue()
Returns top value.
|
boolean |
hasTop()
Returns true if the iterator has more elements.
|
void |
init(SortedKeyValueIterator<Key,Value> source,
Map<String,String> options,
IteratorEnvironment env)
Initializes the iterator.
|
void |
next()
Advances to the next K,V pair.
|
abstract Value |
reduce(Key key,
Iterator<Value> iter)
Reduces a list of Values into a single Value.
|
void |
seek(Range range,
Collection<ByteSequence> columnFamilies,
boolean inclusive)
Seeks to the first key in the Range, restricting the resulting K,V pairs to those with the specified columns.
|
static void |
setColumns(IteratorSetting is,
List<IteratorSetting.Column> columns)
A convenience method to set which columns a combiner should be applied to.
|
static void |
setCombineAllColumns(IteratorSetting is,
boolean combineAllColumns)
A convenience method to set the "all columns" option on a Combiner.
|
boolean |
validateOptions(Map<String,String> options)
Check to see if an options map contains all options required by an iterator and that the option values are in the expected formats.
|
getSource, setSource
protected static final String COLUMNS_OPTION
protected static final String ALL_OPTION
public Key getTopKey()
SortedKeyValueIterator
getTopKey
in interface SortedKeyValueIterator<Key,Value>
getTopKey
in class WrappingIterator
public Value getTopValue()
SortedKeyValueIterator
getTopValue
in interface SortedKeyValueIterator<Key,Value>
getTopValue
in class WrappingIterator
public boolean hasTop()
SortedKeyValueIterator
hasTop
in interface SortedKeyValueIterator<Key,Value>
hasTop
in class WrappingIterator
public void next() throws IOException
SortedKeyValueIterator
next
in interface SortedKeyValueIterator<Key,Value>
next
in class WrappingIterator
IOException
- if an I/O error occurs.public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException
SortedKeyValueIterator
SortedKeyValueIterator.init(org.apache.accumulo.core.iterators.SortedKeyValueIterator<K, V>, java.util.Map<java.lang.String, java.lang.String>, org.apache.accumulo.core.iterators.IteratorEnvironment)
is called.
Iterators that examine groups of adjacent key/value pairs (e.g. rows) to determine their top key and value should be sure that they properly handle a seek
to a key in the middle of such a group (e.g. the middle of a row). Even if the client always seeks to a range containing an entire group (a,c), the tablet
server could send back a batch of entries corresponding to (a,b], then reseek the iterator to range (b,c) when the scan is continued.seek
in interface SortedKeyValueIterator<Key,Value>
seek
in class WrappingIterator
range
- Range of keys to iterate over.columnFamilies
- Collection of column families to include or exclude.inclusive
- boolean that indicates whether to include (true) or exclude (false) column families.IOException
- if an I/O error occurs.public abstract Value reduce(Key key, Iterator<Value> iter)
key
- The most recent version of the Key being reduced.iter
- An iterator over the Values for different versions of the key.public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options, IteratorEnvironment env) throws IOException
SortedKeyValueIterator
init
in interface SortedKeyValueIterator<Key,Value>
init
in class WrappingIterator
source
- SortedKeyValueIterator source to read data from.options
- Map map of string option names to option values.env
- IteratorEnvironment environment in which iterator is being run.IOException
- unused.public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env)
SortedKeyValueIterator
deepCopy
in interface SortedKeyValueIterator<Key,Value>
deepCopy
in class WrappingIterator
env
- IteratorEnvironment environment in which iterator is being run.public OptionDescriber.IteratorOptions describeOptions()
OptionDescriber
describeOptions
in interface OptionDescriber
public boolean validateOptions(Map<String,String> options)
OptionDescriber
validateOptions
in interface OptionDescriber
options
- a map of option names to option valuespublic static void setColumns(IteratorSetting is, List<IteratorSetting.Column> columns)
is
- iterator settings object to configurecolumns
- a list of columns to encode as the value for the combiner column configurationpublic static void setCombineAllColumns(IteratorSetting is, boolean combineAllColumns)
is
- iterator settings object to configurecombineAllColumns
- if true, the columns option is ignored and the Combiner will be applied to all columnsCopyright © 2012 The Apache Software Foundation. All Rights Reserved.