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;
        }
  • 相关阅读:
    php发送邮件
    本地phpstudy集成环境中MYSQL在数据传输时报错- Unknown storage engine 'InnoDB'的解决办法
    一键分享到QQ空间、QQ好友、新浪微博、微信代码
    点分治_学习笔记+题目清单
    AtCoder Beginner Contest168-F (二维离散化)
    Codeforces 1354E(Graph Coloring,二分图+dp)
    Codeforces 832D(Misha, Grisha and Underground,LCA)
    Codeforces Round #643 (Div.2)
    Codeforces 909E(Coprocessor,双队列维护)
    Codeforces 949C(Data Center Maintenance,Tarjan缩点)
  • 原文地址:https://www.cnblogs.com/leon0/p/11381353.html
Copyright © 2011-2022 走看看