德州吧下载


德州吧下载 手执一支湖笔,在黄色的牛皮卷上刻下青春的诗卷,抑或用想象的笔墨挥洒澎湃的激情。娴静岁月,用青春一词肆意喷发专属点滴。
德州吧下载在饭店,小李跟桌对面的人客气道:“吃了吗?”  他也客气,“没吃呢。@捧腹网 ”“真没吃?”  小李一把将他面前的面条拽到自己身边,  边吃边说:“那我可就先吃了,你等下一碗吧。”德州吧下载他说这是他们残门的必修课,为的就是在关键时刻处理掉手上的赃。我问他我能学会吗,他回答说不太可能,这一招要先练手腕上的劲儿,得打小练,没十几年的苦功夫根本就不行。德州吧下载第一次加我就向我的诉苦,一个33岁的女人向一个22岁的男人诉苦,我都不知道她是怎么过来的!
德州吧下载而这两类人,都同样是在赌场最挥霍的客人!  

皇冠足球比分

大发论坛时时彩平台尊龙娱乐是黑网吗海天国际娱乐城注册送钱凯发娱乐乐宝娱乐城真人赌钱bodog888亚美国际娱乐城 金龙国际 www.am8.com 亚洲城娱乐 老k国际娱乐城 666k8.com 金威国际娱乐城 名人国际娱乐城 ag娱乐平台 V博娱乐城 凯旋门娱乐龙虎赌场网站地图凯斯娱乐城网站地图博彩评级网站地图澳门赌场上班要什么条件网站地图凯发电气 股吧网站地图http://tinyurl.com/pfjhfuc网站地图三大赌球公司网站地图58同城娱乐网网站地图大发888屡败屡战网站地图网上真钱牛牛网站地图利来国际娱乐平台网站地图玩老虎机技巧网站地图环亚娱乐官网网站地图顶级博彩网网站地图国际注册送钱e8889.com网站地图e胜博在线赌博网站地图

HBase--DependentColumnFilter(参考例过滤器 )详解

  DependentColumnFilter是一种允许用户指定一个参考列或引用列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选 。

  官方说明:

  

大意:此过滤器提供两个参数--列族和列限定符,它将返回与参考列具有相同时间戳的行的所有键值对。如果某行不包含这个指定的列,则什么都不返回。

此过滤器还提供了四种构造函数:

DependentColumnFilter()

DependentColumnFilter(byte[] family,byte[] qulifier)

DependentColumnFilter(byte[] family,byte[] qulifier,boolean dropDependentColumn)    

DependentColumnFilter(byte[] family,byte[] qulifier,boolean dropDependentColumn,CompareOp valueCompareOp, WritableByteArrayComparable valueComparator)

相关参数:

boolean dropDependentColumn -- 决定参考列被返回还是丢弃,为true时表示参考列被返回,为false时表示被丢弃

CompareOp valueCompareOp --  比较运算符

WritableByteArrayComparable valueComparator --  比较器

更深入理解请看下面的例子:

测试表数据如下(图1):

                                          

 

public class HDependentColumnFilter {

    public static void dependentColumnFilter(Filter filter,Connection connection){
        try {
        Table table = connection.getTable(TableName.valueOf("student"));    
        Scan scan = new Scan();
        scan.setFilter(filter);//为全表扫描器设置过滤器
        ResultScanner scanner;
        scanner = table.getScanner(scan);
         for (Result result : scanner) {
            for (Cell cell : result.rawCells()) {
                System.out.println("key:"+CellUtil.getCellKeyAsString(cell)+"  "+"value:"+Bytes.toString(CellUtil.cloneValue(cell)));//输出单元格对应的键和值
            }
         }
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }
    
    public static void main(String[] args) {
        Configuration conf = HBaseConfiguration.create();
        conf.set("habse.rootdir","hdfs://master:9000/hbase-1.0.2");
        conf.set("hbase.zookeeper.quorum","master,node1,node2");
        Connection connection;
        try {
            connection = ConnectionFactory.createConnection(conf);
            Admin admin = connection.getAdmin();            
            //DependentColumnFilter dependentColumnFilter = new DependentColumnFilter( Bytes.toBytes("info"),Bytes.toBytes("name"),false);(1)
                    
            //DependentColumnFilter dependentColumnFilter = new DependentColumnFilter( Bytes.toBytes("info"),Bytes.toBytes("name"),true);  (2)
            
            //DependentColumnFilter dependentColumnFilter = new DependentColumnFilter( Bytes.toBytes("info"),Bytes.toBytes("name"),false,CompareOp.EQUAL, new BinaryPrefixComparator(Bytes.toBytes("mobin")));    (3)

            dependentColumnFilter(dependentColumnFilter,connection);
        } catch (IOException e) {
            e.printStackTrace();
        }      
    }
}

 

解析:

去掉(1)对应的的注释:以info:name对应的时间戳为条件对同列族的其他列(包括info:name)进行筛选,即以timestamp=1448789165850,timestamp=1448789339803,timestampe=1448796208530为条件对info的其他列进行筛选,根据表(图1)可知info列族中时间戳值为1448789165850,1448789339803

1448796208530的还有rowkey=1,1info:age对应的行

其输出如下:

key:1/info:age/1448789165850/Put/vlen=2/seqid=0 value:22
key:1/info:name/1448789165850/Put/vlen=5/seqid=0 value:mobin
key:2/info:name/1448789339803/Put/vlen=6/seqid=0 value:mobin2
key:3/info:name/1448796208530/Put/vlen=4/seqid=0 value:kpop

去掉(2)对应的注释:以info:name对应的时间戳为条件对同列族的其他列(不包括info:name)进行筛选,即以timestamp=1448789165850,timestamp=1448789339803,timestampe=1448796208530为条件对info的其他列进行筛选,根据表(图1)可知info列中时间戳值为1448789165850,1448789339803

1448796208530的还有rowkey=1,1info:age对应的行

其输出如下:【与(1)不同的是没有返回info:name对应的键值对】

key:1/info:age/1448789165850/Put/vlen=2/seqid=0  value:22

 

去掉(3)对应的注释:以info:name,value="mobin*"(*表示后面可以是任意字符)单元格对应的时间戳为条件对同列族的其他列(包括info:name)进行筛选,根据表可知

值以mobin开头的对应的时间戳有1448789165850,1448789165850,可得对应的还有rowkey=1. info:age的行也符合过滤条件

 

其输出如下:

key:1/info:age/1448789165850/Put/vlen=2/seqid=0  value:22
key:1/info:name/1448789165850/Put/vlen=5/seqid=0  value:mobin
key:2/info:name/1448789339803/Put/vlen=6/seqid=0  value:mobin2

 

根据上面的输出结果,我们可以把DependentColumnFilter理解为一个valueFilter和一个时间戳过滤器的组合。如代码(3),我们传入了比较运算符和比较器对列进行了筛选。

 

posted @ 2015-11-29 22:54 MOBIN 阅读(...) 评论(...) 编辑 收藏