用于跳过整个行键,需要和其他过滤器一起使用,本例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的更多相关文章

  1. hbase权威指南学习笔记--过滤器

    1.使用hbase是shell客户端进行过滤查询 scan 'testtable',{COLUMNS=>'colfam1:col-0',FILTER=>RowFilter.new(Comp ...

  2. HBase笔记6 过滤器

    过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器 ...

  3. java SSH整合配置

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3 ...

  4. iOS App之间跳转

    1.先来看看效果,这里做了三个功能 从MyApp跳转到YourApp 从MyApp跳转到YourApp的指定页面 从YourApp使用跳转url的方式跳回MyApp 2.实现app之间的跳转需要注意两 ...

  5. phonegap + Framework7 之 ios 推送跳转测试

    先说说项目情况:使用phonegap创建的ios项目,然后在使用html + css开发网页中又使用了一个框架Framework7(Framework7是一个构建仿原生ios和android应用的框架 ...

  6. iOS开发,应用间的跳转

    预习:URL由两部分组成-- 1.scheme:协议头(http://  ftp:// 等等) 2.path:路径(URL中path可以没有) 一.简单实现跳转到指定APP(也就是说跳转到的APP必须 ...

  7. RouterOS首次打开网页强制跳转

    网上极少有关于RouterOS的第一次打开网页强制跳转主页的方法,大多数都方法是将浏览某个域名的IP地址跳转到自己的主页,这种方法有时会失效.还有一种方法就是当用户用80端口连接时,抓取源地址到地址列 ...

  8. IOS 应用跳转 (IOS9白名单)

    跳转到指定app的实现 IOS中应用的跳转是通过URL实现的,因此在实现应用跳转之前我们要设置一下对应的URL. 图一(寻找配置软件的URL) 图二(具体配置选项) 注意: 如果IOS版本为IOS9 ...

  9. iOS - (两个APP之间的跳转)

    一个程序若要跳到另一个程序.需要在目标程序的plist文件里面修改: 打开info.plist,添加一项URL types 展开URL types,再展开Item0,将Item0下的URL ident ...

随机推荐

  1. Git使用教程(一)---本地git管理

    之前写过不少小demo,因为没有很好的整理,很多demo都找不到了,必要的时候又要重新写这些demo:这是一个很头疼的问题,很烦躁.网上看到git的版本控制以及托管,很nice.开始学习使用git,关 ...

  2. lua中table的常用方法

    转载:https://blog.csdn.net/Fenglele_Fans/article/details/83627021 1:table.sort() language = {"lua ...

  3. AssetBundle一些问题

    AssetBundle划分过细的问题,比如每个资源都是AssetBundle. 加载IO次数过多,从而增大了硬件设备耗能和发热的压力: Unity 5.3 ~ 5.5 版本中,Android平台上在不 ...

  4. facebook和twitter的截图分享

    记录一下代码,以后自己可以抄..我抄我自己=.= SDK的接入看之前的博客.所以话不多少,直接上代码(记得分享一定要安装原生app(FB和twitter),不然只通过网页分享无法发图片.),初始化都在 ...

  5. PASSWORD MySQL 5.6.21-1ubuntu14.04_amd64

    /***************************************************************************** The main idea is that ...

  6. hostname命令详解

    基础命令学习目录首页 原文链接:https://idc.wanyunshuju.com/cym/68.html Linux操作系统的hostname是一个kernel变量,可以通过hostname命令 ...

  7. python 原生态调用server服务————SimpleHTTPServer

    python 原生态调用server服务,接收http传递的参数并且处理返回结果 很多blog中都是抄了官网的,没有说明参数如何接收 1.代码中提供了post与get两种方式来发起请求,但是传递参数时 ...

  8. linux, configure --prefix 的作用

    指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc.其它的资源文件放在/usr ...

  9. Daily Scrum 11.14

    姓名 今日任务 黄新越 按照热度排序->产生柱状图 刘垚鹏 总体代码架构整合 王骜 总体代码架构整合 林旭鹏 优化整体UI布局 安康 优化整体UI布局 黄伟龙 预先合作编写测试用例 马佐霖 预先 ...

  10. Linux课程学习之我思

    陈民禾,原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000,我的博客中有一部分是出自M ...