Class ColumnValueFilter


@Public public class ColumnValueFilter extends FilterBase
Different from SingleColumnValueFilter which returns an entire row when specified condition is matched, ColumnValueFilter return the matched cell only.

This filter is used to filter cells based on column and value. It takes a CompareOperator operator (<, <=, =, !=, >, >=), and and a ByteArrayComparable comparator.

  • Field Details

  • Constructor Details

  • Method Details

    • getCompareOperator

      Returns operator
    • getComparator

      Returns the comparator
    • getFamily

      public byte[] getFamily()
      Returns the column family
    • getQualifier

      public byte[] getQualifier()
      Returns the qualifier
    • reset

      public void reset() throws IOException
      Description copied from class: FilterBase
      Filters that are purely stateless and do nothing in their reset() methods can inherit this null/empty implementation. Reset the state of the filter between rows. Concrete implementers can signal a failure condition in their code by throwing an IOException.
      Overrides:
      reset in class FilterBase
      Throws:
      IOException - in case an I/O or an filter specific failure needs to be signaled.
    • filterRowKey

      public boolean filterRowKey(Cell cell) throws IOException
      Description copied from class: Filter
      Filters a row based on the row key. If this returns true, the entire row will be excluded. If false, each KeyValue in the row will be passed to Filter.filterCell(Cell) below. If Filter.filterAllRemaining() returns true, then Filter.filterRowKey(Cell) should also return true. Concrete implementers can signal a failure condition in their code by throwing an IOException.
      Overrides:
      filterRowKey in class FilterBase
      Parameters:
      cell - The first cell coming in the new row
      Returns:
      true, remove entire row, false, include the row (maybe).
      Throws:
      IOException - in case an I/O or an filter specific failure needs to be signaled.
    • filterCell

      Description copied from class: Filter
      A way to filter based on the column family, column qualifier and/or the column value. Return code is described below. This allows filters to filter only certain number of columns, then terminate without matching ever column. If filterRowKey returns true, filterCell needs to be consistent with it. filterCell can assume that filterRowKey has already been called for the row. If your filter returns ReturnCode.NEXT_ROW, it should return ReturnCode.NEXT_ROW until Filter.reset() is called just in case the caller calls for the next row. Concrete implementers can signal a failure condition in their code by throwing an IOException.
      Overrides:
      filterCell in class Filter
      Parameters:
      c - the Cell in question
      Returns:
      code as described below
      Throws:
      IOException - in case an I/O or an filter specific failure needs to be signaled.
      See Also:
    • compareValue

      private boolean compareValue(CompareOperator op, ByteArrayComparable comparator, Cell cell)
      This method is used to determine a cell should be included or filtered out.
      Parameters:
      op - one of operators CompareOperator
      comparator - comparator used to compare cells.
      cell - cell to be compared.
      Returns:
      true means cell should be filtered out, included otherwise.
    • createFilterFromArguments

      public static Filter createFilterFromArguments(ArrayList<byte[]> filterArguments)
      Creating this filter by reflection, it is used by ParseFilter,
      Parameters:
      filterArguments - arguments for creating a ColumnValueFilter
      Returns:
      a ColumnValueFilter
    • convert

      org.apache.hadoop.hbase.shaded.protobuf.generated.FilterProtos.ColumnValueFilter convert()
      Returns A pb instance to represent this instance.
    • parseFrom

      public static ColumnValueFilter parseFrom(byte[] pbBytes) throws DeserializationException
      Parse a serialized representation of ColumnValueFilter
      Parameters:
      pbBytes - A pb serialized ColumnValueFilter instance
      Returns:
      An instance of ColumnValueFilter made from bytes
      Throws:
      DeserializationException - if an error occurred
      See Also:
    • toByteArray

      public byte[] toByteArray() throws IOException
      Description copied from class: FilterBase
      Return length 0 byte array for Filters that don't require special serialization
      Overrides:
      toByteArray in class FilterBase
      Returns:
      The filter serialized using pb
      Throws:
      IOException - in case an I/O or an filter specific failure needs to be signaled.
    • areSerializedFieldsEqual

      Returns true if and only if the fields of the filter that are serialized are equal to the corresponding fields in other. Used for testing.
      Overrides:
      areSerializedFieldsEqual in class FilterBase
      Returns:
      true if and only if the fields of the filter that are serialized are equal to the corresponding fields in other. Used for testing.
    • isFamilyEssential

      public boolean isFamilyEssential(byte[] name) throws IOException
      Description copied from class: FilterBase
      By default, we require all scan's column families to be present. Our subclasses may be more precise. Check that given column family is essential for filter to check row. Most filters always return true here. But some could have more sophisticated logic which could significantly reduce scanning process by not even touching columns until we are 100% sure that it's data is needed in result. Concrete implementers can signal a failure condition in their code by throwing an IOException.
      Overrides:
      isFamilyEssential in class FilterBase
      Throws:
      IOException - in case an I/O or an filter specific failure needs to be signaled.
    • toString

      public String toString()
      Description copied from class: FilterBase
      Return filter's info for debugging and logging purpose.
      Overrides:
      toString in class FilterBase
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object