Class VariableLengthByteKeyAndValueComparator<INPUT>

  • All Implemented Interfaces:
    Serializable

    @Internal
    public class VariableLengthByteKeyAndValueComparator<INPUT>
    extends org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
    The VariableLengthByteKeyAndValueComparator is used by KeyedSortPartitionOperator to compare records according to both the record key and record value. The length of record key must be variable and will be read from DataInputView.
    See Also:
    Serialized Form
    • Constructor Detail

      • VariableLengthByteKeyAndValueComparator

        public VariableLengthByteKeyAndValueComparator​(org.apache.flink.api.common.typeutils.TypeComparator<INPUT> valueComparator)
    • Method Detail

      • hash

        public int hash​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> record)
        Specified by:
        hash in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • setReference

        public void setReference​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> toCompare)
        Specified by:
        setReference in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • equalToReference

        public boolean equalToReference​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> candidate)
        Specified by:
        equalToReference in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • compareToReference

        public int compareToReference​(org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>> referencedComparator)
        Specified by:
        compareToReference in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • compare

        public int compare​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> first,
                           org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> second)
        Specified by:
        compare in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • compareSerialized

        public int compareSerialized​(org.apache.flink.core.memory.DataInputView firstSource,
                                     org.apache.flink.core.memory.DataInputView secondSource)
                              throws IOException
        Specified by:
        compareSerialized in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
        Throws:
        IOException
      • supportsNormalizedKey

        public boolean supportsNormalizedKey()
        Specified by:
        supportsNormalizedKey in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • getNormalizeKeyLen

        public int getNormalizeKeyLen()
        Specified by:
        getNormalizeKeyLen in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • isNormalizedKeyPrefixOnly

        public boolean isNormalizedKeyPrefixOnly​(int keyBytes)
        Specified by:
        isNormalizedKeyPrefixOnly in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • putNormalizedKey

        public void putNormalizedKey​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> record,
                                     org.apache.flink.core.memory.MemorySegment target,
                                     int offset,
                                     int numBytes)
        Specified by:
        putNormalizedKey in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • invertNormalizedKey

        public boolean invertNormalizedKey()
        Specified by:
        invertNormalizedKey in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • duplicate

        public org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>> duplicate()
        Specified by:
        duplicate in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • extractKeys

        public int extractKeys​(Object record,
                               Object[] target,
                               int index)
        Specified by:
        extractKeys in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • getFlatComparators

        public org.apache.flink.api.common.typeutils.TypeComparator<?>[] getFlatComparators()
        Specified by:
        getFlatComparators in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • supportsSerializationWithKeyNormalization

        public boolean supportsSerializationWithKeyNormalization()
        Specified by:
        supportsSerializationWithKeyNormalization in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • writeWithKeyNormalization

        public void writeWithKeyNormalization​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> record,
                                              org.apache.flink.core.memory.DataOutputView target)
        Specified by:
        writeWithKeyNormalization in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>
      • readWithKeyDenormalization

        public org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> readWithKeyDenormalization​(org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT> reuse,
                                                                                                     org.apache.flink.core.memory.DataInputView source)
        Specified by:
        readWithKeyDenormalization in class org.apache.flink.api.common.typeutils.TypeComparator<org.apache.flink.api.java.tuple.Tuple2<byte[],​INPUT>>