欢迎投稿

今日深度:

Hbase实现Like查询,Hbase实现Like

Hbase实现Like查询,Hbase实现Like


Hbase的api中可以通过filter来实现like查询

public static void likeQueryByRowkey() throws Exception{
		    Scan scan = new Scan();  
		    RegexStringComparator comp = new RegexStringComparator("(2014-09)");  
		    RowFilter filter = new RowFilter(CompareOp.EQUAL, comp);  
		    scan.setFilter(filter);  
		    scan.setCaching(200);  
		    scan.setCacheBlocks(false);  
		    HTable hTable = new HTable(configuration, "access_page_ip_basis_hour");  
		    ResultScanner scanner = hTable.getScanner(scan);  
		    byte[] fbytes = Bytes.toBytes("columnFamily1");
		    byte[] cbytes = Bytes.toBytes("h_time"); 
		    for (Result r : scanner) {  
		    	AccessPageIpBasisHour o = new AccessPageIpBasisHour();
				for (KeyValue kv : r.raw()) {
					if("pageNum".equals(new String(kv.getQualifier()))){
						o.setPageNum(Integer.parseInt(new String(kv.getValue())));
						String hTime = new String(kv.getRow());
						o.sethTime(hTime);
					}else if("ipNum".equals(new String(kv.getQualifier()))){
						o.setIpNum(Integer.parseInt(new String(kv.getValue())));
					}else if("accessNum".equals(new String(kv.getQualifier()))){
						o.setAccessNum(Integer.parseInt(new String(kv.getValue())));
					}
				}
				System.out.println(o.getAccessNum());
		    }  
	}
	
	public static void likeQueryByColumn() throws Exception{
	        Scan scan = new Scan();  
	        RegexStringComparator comp = new RegexStringComparator("(##2014-09)");  
	        byte[] bytes = Bytes.toBytes("h_time");  
	        Filter filter = new SingleColumnValueFilter(bytes, bytes, CompareOp.EQUAL, comp);  
	        scan.setFilter(filter);  
	        scan.setCaching(200);  
	        scan.setCacheBlocks(false);  
	        HTable hTable = new HTable(configuration, "access_page_ip_basis_hour");  
	        ResultScanner scanner = hTable.getScanner(scan);  
	        for (Result r : scanner) {  
	        	AccessPageIpBasisHour o = new AccessPageIpBasisHour();
				for (KeyValue kv : r.raw()) {
					if("pageNum".equals(new String(kv.getQualifier()))){
						o.setPageNum(Integer.parseInt(new String(kv.getValue())));
						String hTime = new String(kv.getRow());
						o.sethTime(hTime);
					}else if("ipNum".equals(new String(kv.getQualifier()))){
						o.setIpNum(Integer.parseInt(new String(kv.getValue())));
					}else if("accessNum".equals(new String(kv.getQualifier()))){
						o.setAccessNum(Integer.parseInt(new String(kv.getValue())));
					}
				}
				System.out.println(o.gethTime());
	        }  
	    }  


 

www.htsjk.Com true http://www.htsjk.com/hbase/30720.html NewsArticle Hbase实现Like查询,Hbase实现Like Hbase的api中可以通过filter来实现like查询 public static void likeQueryByRowkey() throws Exception{ Scan scan = new Scan(); RegexStringComparator comp = new RegexStringComparator("(2014-09)")...
相关文章
    暂无相关文章
评论暂时关闭