zoukankan      html  css  js  c++  java
  • Hbase 多条件查询

     /**
         * 获得相等过滤器。相当于SQL的 [字段] = [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter eqFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.EQUAL, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 获得大于过滤器。相当于SQL的 [字段] > [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter gtFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.GREATER, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 获得大于等于过滤器。相当于SQL的 [字段] >= [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter gteqFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.GREATER_OR_EQUAL, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 获得小于过滤器。相当于SQL的 [字段] < [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter ltFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.LESS, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 获得小于等于过滤器。相当于SQL的 [字段] <= [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter lteqFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.LESS_OR_EQUAL, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 获得不等于过滤器。相当于SQL的 [字段] != [值]
         * @param cf 列族名
         * @param col 列名
         * @param val 值
         * @return 过滤器
         */
        public static Filter neqFilter(String cf, String col, byte[] val) {
            SingleColumnValueFilter f = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.NOT_EQUAL, val);
            f.setLatestVersionOnly(true);
            f.setFilterIfMissing(true);
            return f;
        }
    
        /**
         * 和过滤器 相当于SQL的 的 and
         * @param filters 多个过滤器
         * @return 过滤器
         */
        public static Filter andFilter(Filter... filters) {
            FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
            if(filters!=null && filters.length > 0) {
                if(filters.length > 1) {
                    for (Filter f : filters) {
                        filterList.addFilter(f);
                    }
                }
                if(filters.length == 1) {
                    return filters[0];
                }
            }
            return filterList;
        }
    
        /**
         * 和过滤器 相当于SQL的 的 and
         * @param filters 多个过滤器
         * @return 过滤器
         */
        public static Filter andFilter(Collection<Filter> filters) {
            return andFilter(filters.toArray(new Filter[0]));
        }
    
    
    
        /**
         * 或过滤器 相当于SQL的 or
         * @param filters 多个过滤器
         * @return 过滤器
         */
        public static Filter orFilter(Filter... filters) {
            FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE);
            if(filters!=null && filters.length > 0) {
                for(Filter f : filters) {
                    filterList.addFilter(f);
                }
            }
            return filterList;
        }
    
        /**
         * 或过滤器 相当于SQL的 or
         * @param filters 多个过滤器
         * @return 过滤器
         */
        public static Filter orFilter(Collection<Filter> filters) {
            return orFilter(filters.toArray(new Filter[0]));
        }
    
        /**
         * 非空过滤器 相当于SQL的 is not null
         * @param cf 列族
         * @param col 列
         * @return 过滤器
         */
        public static Filter notNullFilter(String cf,String col) {
            SingleColumnValueFilter filter = new SingleColumnValueFilter(cf.getBytes(),col.getBytes(), CompareFilter.CompareOp.NOT_EQUAL,new NullComparator());
            filter.setFilterIfMissing(true);
            filter.setLatestVersionOnly(true);
            return filter;
        }
    
        /**
         * 空过滤器 相当于SQL的 is null
         * @param cf 列族
         * @param col 列
         * @return 过滤器
         */
        public static Filter nullFilter(String cf,String col) {
            SingleColumnValueFilter filter = new SingleColumnValueFilter(cf.getBytes(),col.getBytes(), CompareFilter.CompareOp.EQUAL,new NullComparator());
            filter.setFilterIfMissing(false);
            filter.setLatestVersionOnly(true);
            return filter;
        }
    
        /**
         * 子字符串过滤器 相当于SQL的 like '%[val]%'
         * @param cf 列族
         * @param col 列
         * @param sub 子字符串
         * @return 过滤器
         */
        public static Filter subStringFilter(String cf, String col, String sub) {
            SingleColumnValueFilter filter = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.EQUAL, new SubstringComparator(sub));
            filter.setFilterIfMissing(true);
            filter.setLatestVersionOnly(true);
            return filter;
        }
    
        /**
         * 正则过滤器 相当于SQL的 rlike '[regex]'
         * @param cf 列族
         * @param col 列
         * @param regex 正则表达式
         * @return 过滤器
         */
        public static Filter regexFilter(String cf, String col , String regex) {
            SingleColumnValueFilter filter = new SingleColumnValueFilter(cf.getBytes(), col.getBytes(), CompareFilter.CompareOp.EQUAL, new RegexStringComparator(regex));
            filter.setFilterIfMissing(true);
            filter.setLatestVersionOnly(true);
            return filter;
        }
  • 相关阅读:
    HDU 1548 A strange lift (Dijkstra)
    HDU 1217 Arbitrage (Floyd)
    HDU 1385 Minimum Transport Cost (Dijstra 最短路)
    考研总结 2016-12-31 20:10 219人阅读 评论(21) 收藏
    归并排序 2016-12-30 20:17 208人阅读 评论(21) 收藏
    docker安装 2016-11-06 19:14 299人阅读 评论(31) 收藏
    Docker初步了解 2016-10-30 20:46 279人阅读 评论(31) 收藏
    [自考]感想 2016-10-23 20:28 261人阅读 评论(32) 收藏
    [自考]C++中一些特殊用法 2016-10-16 22:12 318人阅读 评论(30) 收藏
    Fitnesse批量读取变量信息,并保存到用例执行上下文中
  • 原文地址:https://www.cnblogs.com/leon0/p/11381353.html
Copyright © 2011-2022 走看看