hbase 跳转过滤器skipfilter
用于跳过整个行键,需要和其他过滤器一起使用,本例SkipFilter和ValueFilter过滤器组合使用过滤不符合条件的行,
如果不配合SkipFiter,ValueFilter只过滤单元值包含的列。
private static void skipFilterData() throws IOException{
Table table = helper.getConnection().getTable(TableName.valueOf("demoTable"));
Filter filter = new ValueFilter(CompareOperator.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("val2")));
Scan scan = new Scan();
scan.setFilter(filter);
ResultScanner scanner1 = table.getScanner(scan);
System.out.println("Results of scan #1:");
int n = 0;
for (Result result : scanner1) {
for (Cell cell : result.rawCells()) {
System.out.println("Cell: " + cell + ", Value: " +
Bytes.toString(cell.getValueArray(), cell.getValueOffset(),
cell.getValueLength()));
n++;
}
}
scanner1.close();
//应用跳转过滤
Filter skipFilter = new SkipFilter(filter);
Scan scan2 = new Scan();
scan2.setFilter(skipFilter);
ResultScanner scanner2 = table.getScanner(scan2);
System.out.println("Total cell count for scan #1: " + n);
n = 0;
System.out.println("Results of scan #2:");
for (Result result : scanner2) {
for (Cell cell : result.rawCells()) {
System.out.println("Cell: " + cell + ", Value: " +
Bytes.toString(cell.getValueArray(), cell.getValueOffset(),
cell.getValueLength()));
n++;
}
}
scanner2.close();
System.out.println("Total cell count for scan #2: " + n);
}
表中数据:
hbase(main):005:0> scan 'demoTable'
ROW COLUMN+CELL
row1 column=cf1:qual1, timestamp=5, value=row1_batch1
row1 column=cf1:qual2, timestamp=2, value=val2
row1 column=cf1:qual3, timestamp=3, value=val3
row1 column=cf2:qual1, timestamp=1, value=val1
row1 column=cf2:qual2, timestamp=5, value=row1_batch2
row1 column=cf2:qual3, timestamp=3, value=val3
row2 column=cf1:qual1, timestamp=1, value=val1
row2 column=cf1:qual3, timestamp=3, value=val3
row2 column=cf2:qual1, timestamp=1, value=val1
row2 column=cf2:qual2, timestamp=2, value=val2
row2 column=cf2:qual3, timestamp=3, value=val3
row3 column=cf1:qual1, timestamp=1, value=value1
输出结果:ValueFilter过滤只过滤某个Cell,配合SkipFilter过滤了整行数据
Cell: row1/cf1:qual1/5/Put/vlen=11/seqid=0, Value: row1_batch1
Cell: row1/cf1:qual3/3/Put/vlen=4/seqid=0, Value: val3
Cell: row1/cf2:qual1/1/Put/vlen=4/seqid=0, Value: val1
Cell: row1/cf2:qual2/5/Put/vlen=11/seqid=0, Value: row1_batch2
Cell: row1/cf2:qual3/3/Put/vlen=4/seqid=0, Value: val3
Cell: row2/cf1:qual1/1/Put/vlen=4/seqid=0, Value: val1
Cell: row2/cf1:qual3/3/Put/vlen=4/seqid=0, Value: val3
Cell: row2/cf2:qual1/1/Put/vlen=4/seqid=0, Value: val1
Cell: row2/cf2:qual3/3/Put/vlen=4/seqid=0, Value: val3
Cell: row3/cf1:qual1/1/Put/vlen=6/seqid=0, Value: value1
Total cell count for scan #1: 10
Results of scan #2:
Cell: row3/cf1:qual1/1/Put/vlen=6/seqid=0, Value: value1
Total cell count for scan #2: 1
hbase 跳转过滤器skipfilter的更多相关文章
- hbase权威指南学习笔记--过滤器
1.使用hbase是shell客户端进行过滤查询 scan 'testtable',{COLUMNS=>'colfam1:col-0',FILTER=>RowFilter.new(Comp ...
- HBase笔记6 过滤器
过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器 ...
- java SSH整合配置
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3 ...
- iOS App之间跳转
1.先来看看效果,这里做了三个功能 从MyApp跳转到YourApp 从MyApp跳转到YourApp的指定页面 从YourApp使用跳转url的方式跳回MyApp 2.实现app之间的跳转需要注意两 ...
- phonegap + Framework7 之 ios 推送跳转测试
先说说项目情况:使用phonegap创建的ios项目,然后在使用html + css开发网页中又使用了一个框架Framework7(Framework7是一个构建仿原生ios和android应用的框架 ...
- iOS开发,应用间的跳转
预习:URL由两部分组成-- 1.scheme:协议头(http:// ftp:// 等等) 2.path:路径(URL中path可以没有) 一.简单实现跳转到指定APP(也就是说跳转到的APP必须 ...
- RouterOS首次打开网页强制跳转
网上极少有关于RouterOS的第一次打开网页强制跳转主页的方法,大多数都方法是将浏览某个域名的IP地址跳转到自己的主页,这种方法有时会失效.还有一种方法就是当用户用80端口连接时,抓取源地址到地址列 ...
- IOS 应用跳转 (IOS9白名单)
跳转到指定app的实现 IOS中应用的跳转是通过URL实现的,因此在实现应用跳转之前我们要设置一下对应的URL. 图一(寻找配置软件的URL) 图二(具体配置选项) 注意: 如果IOS版本为IOS9 ...
- iOS - (两个APP之间的跳转)
一个程序若要跳到另一个程序.需要在目标程序的plist文件里面修改: 打开info.plist,添加一项URL types 展开URL types,再展开Item0,将Item0下的URL ident ...
随机推荐
- 我所理解的selenium之PO设计模式
下午,花了点时间来整理UI自动化设计,就把我所理解的PO设计模式项目结构脑图整理如下,有不对的地方还望多多包涵.谢谢
- Python3列表中获取相同元素出现位置的下标
前言 list: Python3的列表类型, 和其他语言中的数组类似 定义格式: l = ["a", "b", "c", "a&q ...
- spring cloud 入门系列八:使用spring cloud sleuth整合zipkin进行服务链路追踪
好久没有写博客了,主要是最近有些忙,今天忙里偷闲来一篇. =======我是华丽的分割线========== 微服务架构是一种分布式架构,微服务系统按照业务划分服务单元,一个微服务往往会有很多个服务单 ...
- Robot的使用
在Java中,有一个类,非常神奇,它能帮助你完成某些任务,例如:打开笔记本/QQ等. 今天,我就说一下Robot类的使用方法吧,做一个打开记事本的小程序. 1.准备工作 JDK:不知道的别看了 开发工 ...
- CocoStuff—基于Deeplab训练数据的标定工具【四、用该工具标定个人数据】
一.说明 本文为系列博客第四篇,主要讲述笔者在正式使用该工具使用自定义标签标注自己的图片的过程. 二.数据整理 相信大家已经在 *占坑
- 打包一个传统的ASP.NET web app作为Docker镜像
(1)针对NerdDinner应用的Dockerfile内容如下 PS E:\DockeronWindows\Chapter02\ch02-nerd-dinner> cat .\Dockerfi ...
- 《The Mythical Man-Month(人月神话)》读后感(1)
临近考试周,这里我通过平时阅读的<人月神话>十九个章节和知乎.简书等网页中网友们对<人月神话>的读后感,对书中各个章节进行简单的总结,以下均为个人手打观点的思考与整合,仅供大家 ...
- SSZipArchive解压失败的原因
SSZipArchive 解压失败的原因是路径不对解压失败后,修正路径后再次解压就会出现解压失败的情况,代理方法也不会走也没有日志输出.解决方法就是删除手机上的软件再次运行就可以了.这个问题也就在内部 ...
- 9.Hive Metastore Administration
前言metastore参数metastore的基本参数metastore的额外参数客户端参数使用zk自动发现mestastore启动hive metastore服务 前言 本节讲metastore相关 ...
- 慢吞吞的pip切换源
http://blog.csdn.net/gz_liuyun/article/details/52778198