Interface StreamComparator<T extends InputStream>
- Type Parameters:
- All Known Implementing Classes:
- BytesComparator, DelegatingTupleElementComparator, TupleElementComparator, TupleElementStreamComparator
public interface StreamComparator<T extends InputStream>
The StreamComparator interface allows for two
Typically this interface is used to mark a
InputStream instances to be compared, typically bit-wise.
This is most useful when defining custom types to be stored in
Tuple instances and the values will need
to be grouped on and/or secondary sorted (via
and the underlying serialization implementation enables a useful bit-wise comparison without deserializing the custom
type into memory.
Comparator as additionally
supporting the ability to compare raw streams in tandem with comparing Object instances.
Thus concrete implementations should implement this interface and the Comparator interface when being used
as a "grouping" or "sorting" field Comparator
When used with Hadoop, a
BufferedInputStream is passed into the
method. This class gives access to the underlying byte array so each individual byte need to be
So it is useful to declare an implementation as
public class YourCustomComparator implements StreamComparator<BufferedInputStream>, Comparator<YourCustomType>, Serializable
Note the method
ByteArrayInputStream.skip(long) will need to be called with the number
of bytes read from the underlying byte buffer before the compare() method returns.
int compare(T lhsStream,
Copyright © 2007-2013 Concurrent, Inc. All Rights Reserved.