Advertisement
Ladies_Man

hbase filter old

Jan 5th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. import org.apache.hadoop.hbase.Cell;
  2. import org.apache.hadoop.hbase.exceptions.DeserializationException;
  3. import org.apache.hadoop.hbase.filter.Filter;
  4. import org.apache.hadoop.hbase.filter.FilterBase;
  5. import org.apache.hadoop.hbase.filter.PageFilter;
  6. import org.apache.hadoop.hbase.util.Bytes;
  7.  
  8. import java.io.IOException;
  9.  
  10. public class CustomFlightFilter extends FilterBase {
  11.     private float delay;
  12.     //private boolean remain_cancelled;
  13.     private boolean remove_it;
  14.  
  15.     public CustomFlightFilter() {
  16.         super();
  17.         //this.remain_cancelled = true;   //if no parameters then remain cancelled flights
  18.         this.remove_it = true;
  19.     }
  20.  
  21.     public CustomFlightFilter(float delay) {
  22.         this.delay = delay;
  23.         //this.remain_cancelled = false;  //if delay has been set then remove cancelled
  24.         this.remove_it = true;
  25.     }
  26.  
  27.     @Override
  28.     public ReturnCode filterKeyValue(Cell cell) throws IOException {
  29.         String column = new String(
  30.                 cell.getQualifierArray(),
  31.                 cell.getQualifierOffset(),
  32.                 cell.getQualifierLength());
  33.  
  34.         String str_value = new String(
  35.                 cell.getValueArray(),
  36.                 cell.getValueOffset(),
  37.                 cell.getValueLength());
  38.  
  39.         float value = (float)777; //dummy
  40.  
  41.         if (column.equals("cancelled") || column.equals("arr_delay_new")) {
  42.             if (str_value.equals("")) {
  43.                 value = (float)0;
  44.             } else {
  45.                 value = Float.parseFloat(str_value);
  46.             }
  47.         }
  48.  
  49.         if ((float)777 != value) {
  50.             if (delay > 0.0) {
  51.                 if (column.equals("arr_delay_new") && value > delay) {
  52.                     remove_it = false;
  53.                 }
  54.             } else {
  55.                 if (column.equals("cancelled") && (float)1 == value) {
  56.                     remove_it = false;
  57.                 }
  58.             }
  59.         }
  60.  
  61.         /*
  62.         if (column.equals("arr_delay_new")) {
  63.             if ((float)(-1) != value && value > delay) {
  64.                 remove_it = false;
  65.             }
  66.         }
  67.  
  68.         if (column.equals("cancelled")) {
  69.             if ((float)(-1) != value && (float)1 == value) {
  70.                 remove_it = false;
  71.             }
  72.         }*/
  73.  
  74. /*        if (remain_cancelled) {
  75.             if (column.equals("cancelled")) {
  76.                 if ((float) 1 == Float.parseFloat(value)) {
  77.                     //row with cancelled flight. keep it
  78.                     remove_it = false;
  79.                 }
  80.             }
  81.         }
  82.  
  83.         if (!remain_cancelled) {
  84.             if (column.equals("arr_delay_new")) {
  85.                 if (!value.isEmpty() && Float.parseFloat(value) > delay) {
  86.                     //row with appropriate delay. keep it
  87.                     remove_it = false;
  88.                 }
  89.             }
  90.         }*/
  91.  
  92.         return ReturnCode.INCLUDE;
  93.         //insert this cell into processed row like <cell> + <cell> + <cell> ...
  94.         //all the cells should remain in processed row
  95.     }
  96.  
  97.     public static Filter parseFrom(byte[] pbBytes) throws DeserializationException{
  98.         return new CustomFlightFilter(Bytes.toFloat(pbBytes));
  99.     }
  100.  
  101.     @Override
  102.     public byte[] toByteArray() throws IOException {
  103.         return Bytes.toBytes(delay);
  104.     }
  105.  
  106.     @Override
  107.     public boolean filterRow() throws IOException {
  108.         return remove_it;
  109.     }
  110.  
  111.     @Override
  112.     public void reset() throws IOException {
  113.         remove_it = true;
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement