00:00
好,咱们写完扫描数据之后呢,紧接着咱们要讲一个带过滤的一个扫描啊,为什么要讲带过滤扫描呢?这个跟呃,H base底层的这个实线有关啊,I底层在设计的时候呢,如果我们想要读数据,它唯一的索引呢,就是这个肉K啊,也就是它的主件,所以我们在读数据的时候呢,你只能够添加这些肉相关的一个信息,嗯,但是对于我们实际开发的候的一些需求呢,你不可能说呃只能够填一个ID啊,组建的这么一个信息,那我有一些需求,比方说我想要过滤name啊。Nameme啊,那么等于张三对吧,那我想要过滤这么一个信息,你不能说不给我做对不对啊呃,如果让我们自己写代码呢,你肯定也可以啊,你在读出它这个数据result scanner的时候呢,自己再加一个过滤就可以了,但这种代码呢,如果让用户去写的话呢,相对的比较麻烦啊,写起来呢也比较复杂,所以作者呢,给我们写了对应的一个功能啊,我们呢可以直接来使用啊呃,我们把这个扫描数据的代码呢,给它复制一下。
01:05
两边的代码其实差不太多,好,我们复制完之后呢,把这个名字也改一下啊,F Fi。好,我们加上这个名字之后呢,再需要给它添加一些参数啊,这些参数呢,不太够啊,我们如果要对它过滤的话呢,需要有列足列名啊,以及这个对应的value值啊,我们来写一下叫string。Column family。好对应的死命类型啊。好逗号,哎,Column name吧,来写全啊,逗号再写一个string value对吧?哎,需要参数呢,给它写全,把这个注呃,文档注释呢给删掉,重新写一个新的啊,这个叫带过滤的扫描啊,在过滤的扫描里面呢,也填一下这些参数的名称,这个叫命名。空间啊,这个叫表格名称啊,这个叫开始肉啊,这叫结束肉对吧?啊结束肉。
02:05
好,对应的再往下呢,这个叫列族名称啊,列族名称啊,这个叫列名。列名啊。好,最后一个呢,叫Y6值啊。Value。啊,那我们在进行过滤的时候呢,你可以进行一些等值过滤,比方说我们就过滤我们说的内等于张三啊,你也可以过滤一些大于小于,比方说A小于18这些啊都是可以的啊,咱们在写相关代码的时候呢,诶,如果遇到了就给大家直接指出来啊好,整个的一个数据扫描呢,跟之前并没有太大的一个差别啊,只是在中间的位置呢,我们添加上了一个过滤,那这个过滤呢,要添加在这个对象里面啊,我们就写到这个位置就可以了。叫。这个。叫添加啊过滤好添加这个过滤呢,它有对应的一个方法叫sc.set filter啊添加一个过滤set filter里面它你填一个filter是吧,这个filter呢是可以添加多个的啊,这是作者呢设计的一个结构啊,这个filter呢是一个副类啊,它是一个副类,我们只需要使用它的此类都是可以去使用的啊,它是可以添加多个的啊,可以添加多个过滤。
03:21
好,那我们在使用的时候呢,可以用一个filter啊Fi filter啊叫list啊,用一个集合啊,点Y返回得到这么一个filter list,因为它是一个具体子类啊,这里面填的是一个父类,你是可以直接把它给放进去的。可以看到对吧?啊,这是我们设置过滤啊,设置过滤好,那这里呢,你用一个集合,它里面肯定是空的啊,那对应的我们应该给它,哎实际的去创建过滤器对吧,叫创建过滤器啊,那在HV里面过滤器有两种啊,有两种我们给它打上括号啊有两种哪两种呢?一种过滤器是过滤完了之后,只保留当前列的一个数据,你比方说你写个name等于张三啊,那它就只保留内这一列啊叫啊结果。
04:06
直。保留啊,当前列的数据啊,那这个呢叫column啊column啊,Column value filter啊这么一个过滤器,在这个过滤器里面需要填对应的参数啊,最少呢要填四个啊填四个,那这个四个呢,咱们就可以写到这个地方了,第一个叫列足名称。啊呃,这里呢,还要用BYBYS对吧,我们给它调出来啊,叫bits To Bites。嗯,找一下啊。在这是吧,啊,By To Buy还是要使用这个东西啊,嗯,转化这个column family。好逗号,再填第二个参数啊,第二个参数呢,叫列名啊,列名啊叫bys To Bys啊叫column name对吧?Column name啊好,第三个参数呢,哎,比较特殊,叫比较关系比较。
05:00
关系啊,可以controltr加P,看一下它的一个啊类型啊叫comp operator啊,Cor啊,Comp operator啊,这个compare op里面呢,我们先调用一个啊,然后你可以点这个E啊equal点进来呢,可以看到它里面的一些值啊,它是一个枚举类,这个枚举类里面呢,有小于小于等于等于不等于大于等于和大于,最后一个呢,是没有关系啊,那这没有关系,那肯定没法用,对吧,你没有关系咋过滤呢?我们一般使用的就是前面啊,要想满足我们当前这个需求呢,就写一个等于这三就可以了啊,那就是一口啊就等于对吧?好,那等于呢,就要有等于的对象啊,等于的对象呢,就是最后一个叫值。啊,最后要填写一个值啊,叫by To By里面填一个value啊,那这样的话呢,我们就创建出了这么一个过滤器,点Y返回,得到这么一个column value filter,得到过滤器之后呢,我们给它添加到这个list里面啊,Filter list.a添加啊给它放进来就可以了啊添加完之后我们给它塞进去,Set进去之后呢,我们再get sc去扫描,就可以得到最终的一个结果了啊这就是带过滤器的扫描,我们这里呢,先讲一种过滤器啊,先来测试使用一下,接下来再讲第二种,好,我们呢来扫描一下,叫结果呢,就找到张三这个人对吧?啊在这个地方呢,我们把原先的扫描的给注掉。
06:24
呃,我们用这个带过滤器的扫描前面的表呢,以及这个范围啊,先给它复制过来。哎,复制过来啊。好,复制过来之后呢,咱们要确定一下啊,这个表里面真的有张三这个人啊,那不然你肯定扫描不到对吧,就展示不出来了,呃,我们这个表里面呢,你可以再重新扫描一下啊,重新扫描一下之后呢,这个表里面确实有一个叫。照六点啊。王啊,呃,这个里面呢,是没有对应的张三这个人的,对吧?哎,需要呢,我们给他手动添加一条数据啊,添加一条数据,那你想添加的话,我们直接在这里面put也可以,对吧,你在那边用API也行,在这边也行啊,它叫big data冒号student啊。
07:07
呃,写一个ROK啊,叫1004啊,你自己随便写一个1004,有了之后呢,写上info冒号name啊,再写上一个啊张三,我们要找这个张三什么好给它放进去。好,那就是1004啊,对应name呢,我们再给它写一个age啊,在那个张三呢,再有一个年龄啊。20岁。好,你再再来扫描呢,你就能得到这一行数据了啊,1004NAME呢啊A是20啊name呢等于张三,那回到代码这边呢,我们来扫描这条数据啊,那个范围呢,一定要给它啊,包括进去啊,写个1005,把这个1004包括进去,呃,对应下面的列足叫info啊。列名呢叫name啊,呃,对应它的一个值呢,叫。张三对吧,我们就找这个张三这个人啊,好的,我们一切准备就绪之后呢,来运行。
08:00
运行的时候呢,要稍微等他一下啊,它需要去初始化链接。好,经过我们的这个等待之后呢,它这个答案就已经显示出来了啊叫1004IN for name张三对吧,我们这一一行数据里面呢,除了name之外,还有一个A啊,可以看到这个过滤线,过滤完了之后呢,只保留单列的一个数据,那就是这样来进行展示的。
我来说两句