zoukankan      html  css  js  c++  java
  • 【大数据-HBase】HBase根据rowKey模糊查询

    根据rowKey作为过滤条件查询HBase,需要用到过滤器RowFilter

    RowFilter属于比较过滤器的一种,比较过滤器继承自CompareFilter。创建一个比较过滤器需要传入两个参数,分别是比较运算符比较器

    一、需求背景

    车联网项目离线数据分析,采用Spark做分析引擎,数据源是HBase。rowKey设计为vin&collectTime,每天取前一天的增量数据作分析统计。

    解决思路:根据yyyyMMdd模糊查询获取某一天的数据。

    注:

    HBase由其他部门设计,我们只负责读,所以这里不讨论修改rowKey和表结构的情况。

    vin:车辆识别号码
    collectTime:yyyyMMddHHmmss
    

    二、代码实现

    查询20200701的数据

    1. 使用正则表达式来匹配rowKey

    比较运算符:CompareOp.EQUAL

    比较器:RegexStringComparator

    Scan scan = new Scan();
    RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, new RegexStringComparator(".*20200701.*"));
    scan.setFilter(rowFilter);
    
    ResultScanner scanner = table.getScanner(scan);
    
    1. 使用子串匹配

    比较运算符:CompareOp.EQUAL

    比较器:SubstringComparator

    Scan scan = new Scan();
    RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, new SubstringComparator("20200701"));
    scan.setFilter(rowFilter);
    
    ResultScanner scanner = table.getScanner(scan);
    
  • 相关阅读:
    27. Remove Element
    26. Remove Duplicates from Sorted Array
    643. Maximum Average Subarray I
    674. Longest Continuous Increasing Subsequence
    1. Two Sum
    217. Contains Duplicate
    448. Find All Numbers Disappeared in an Array
    566. Reshape the Matrix
    628. Maximum Product of Three Numbers
    UVa 1349 Optimal Bus Route Design (最佳完美匹配)
  • 原文地址:https://www.cnblogs.com/yangyh11/p/13336330.html
Copyright © 2011-2022 走看看