最近在做大数据的实验时,遇到需要类似于sql中 select XXX from where xxxxx=xxx的一个检索的需求,翻了好多博客都没有解决,最后通过查看hbase filte的文档,使用SingleValueFilter过滤器
表的结构
#结构
Student表,包含Base和Score两个列族
Base列族包含Number、Name、Sex、Prof列;//学号、姓名、性别、专业
Score列族包含English、Math、Market、Java、Python、BigData列
表的数据
表中数据,每行rowkey设置为学生学号
Number Name Sex Prof English Math Market Java Python BigData
001 Tim m bigdata 80 72 85 75 80
002 Lucy f bigdata 78 68 88 80 76
003 Vivian f biz 82 70 70
004 Golden m biz 80 77 68
需求
搜索所有bigdata专业的学生
解决
思路:使用SingleValueFilter过滤器
scan ‘Student’,{COLUMNS=>‘Base:Name’,FILTER=>“SingleValueFilter(‘Base’,‘Prof’,=,‘bignary:bigdata’)”}
scan 'Student',{COLUMNS=>'Base:Name',FILTER=>"SingleValueFilter('Base','Prof',=,'bignary:bigdata')"}