1.HBase如果加了列限定,如果该列不存在时返回的结果为empty.
看下面的代码:
1
2
|
Get get = new Get(Bytes.toBytes( "100" ));
get.addColumn(Bytes.toBytes( "info" ), Bytes.toBytes( "name" ));
|
这里加入了列限定,也就是只返回列族info下面的name字段。但是如果name字段根本不存在,返回的Result在调用result.isEmpty()时则返回为true,也就是说就算其他字段存在,也什么都没返回来,包括rowkey也没有返回来。当然,如果是限定多个列,只要一个列存在就可以正常返回。所以需要注意。
2.HBase在scan时指定的StartRow里面不能加-
看下面的代码:
1
2
3
4
|
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes( "3136947-" ));
scan.setStopRow(Bytes.toBytes( "3136947-" + 1 ));
|
我的本意是查询rowkey以 3136947- 开头的行,但是因为我的里面有一个-(“杠”),所以什么都没返回,去掉-后正常。这说明这里是不能使用-,-也并不是转义字符,转义后也还是scan不出来的。不知道其他字符是不是也不行,没有测试。 所以需要注意。
3.HBase在scan时过滤掉指定列不存在的记录
如果想返回某个字段必须存在的行,不存在该字段的记录过滤掉不返回,方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes( "3136947" ));
scan.setStopRow(Bytes.toBytes( "3136947" + 1 ));
scan.addColumn(Bytes.toBytes( "info" ),
Bytes.toBytes( "name" ));
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes( "info" ),
Bytes.toBytes( "name" ),
CompareFilter.CompareOp.NOT_EQUAL, Bytes.toBytes( "0" ));
filter.setFilterIfMissing( true );
scan.setFilter(filter);
|
注意:如果是判断某个列是否存在,必须在addColumn里面加上该列,也就是必须返回的字段里面必须包含该列,否则也不会返回,因为在处理的时候是调用addColumn然后才会调用过滤器。
这里的过滤器里面指定该列的字段值必须不等于0(当然,如果你的name里有等于0的当然不能使用0),并且设置setFilterIfMissing为true,也就是设置为如果该列不存在就过滤掉这条数据,默认为false。
http://blog.sina.com.cn/s/blog_68674da70102vabb.html
相关推荐
基于Python+SpringBoot+Vue+HDFS+MapReduce+HBase+Hive+Kafka+Sp
HDFS+MapReduce+Hive+HBase十分钟快速入门.pdf
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
HDFS+MapReduce+Hive+HBase十分钟快速入门
Hadoop-0.20.0-HDFS+MapReduce+Hive+HBase十分钟快速入门
HDFS+MapReduce+Hive+HBase十分钟快速入门,包括这几个部分的简单使用
通过这一阶段的调研总结,从内部机理的角度详细分析,HDFS、MapReduce、Hbase、Hive是如何运行,以及基于Hadoop数据仓库的构建和分布式数据库内部具体实现。如有不足,后续及时修改。整个Hadoop的体系结构主要是通过...
《hadoop-HDFS+MapReduce+Hive+Hbase快速入门》,一门入门hadoop的经典书籍,相信能够给学习云计算的大家带来帮助。
hadoop1.1.2操作例子 包括hbase hive mapreduce相应的jar包
│ Day1604_Hbase Java API-Scan和过滤器.mp4 │ Day1605_Hbase与MapReduce集成-环境变量的配置.mp4 │ Day1610_Hbase与MapReduce集成-Bulk Load.mp4 │ Day1611_Hbase与Sqoop集成使用.mp4 │ Day1612_Hbase完全...
HBase MapReduce完整实例.rar
Eclipse工程 HBase MapReduce完整实例 可远程执行 包含HBase增删改查 执行Test可看到效果
基于Hadoop的mapreduce 在hbase上的使用,基于Hadoop的mapreduce 在hbase上的使用
hadoopHA with QJM环境搭建(hdfs+hbase)
该案例中主要使用MapReduce作为处理组件进行数据处理,实现的案例有如通过javaapi实现hbase数据写入hdfs、hbase表数据复制到另一个表中等操作 对应(《HBase分布式存储系统应用》胡鑫喆 张志刚著)教材中案例
对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看
5 5)最后,HBase不支持联合查询 5 mapreduce与HBase表配合使用 5 4. HBase的模式Schema设计的一些概念和原则 5 1)模式的创建与更新 5 2)列族的数量 6 3)行键设计RowKey 6 5. HBase的拓扑结构是什么? 7 1)拓扑...
可视化毕业设计:数据处理(MapReduce)+数据展示(hbase+java+echarts).zip