• HBase过滤器的使用(以防备用)


    原文链接:https://blog.csdn.net/weixin_43832243/article/details/102746232

    BinaryComparator bcf = new BinaryComparator("g".getBytes());//列名是g 开头的所有列
    QualifierFilter qlif = new QualifierFilter(CompareFilter.CompareOp.EQUAL, bcf);

        Scan scan = new Scan();
        scan.setFilter(qlif);
        scan.addColumn("f".getBytes(), "g".getBytes());
    
        scan.setMaxVersions();//所有的版本
    

    键值元数据过滤器
    1、FamilyFilter:用于过滤列簇,输出在指定簇下的值。
    BinaryComparator comp = new BinaryComparator("info".getBytes());//判断列簇是不是info
    FamilyFilter filter = new FamilyFilter(CompareOp.EQUAL, comp);//FamilyFilter :用于过滤列族。
    2、QualifierFilter :用于列名 Qualifier )过滤。输出列名为name的数据。
    BinaryComparator comp = new BinaryComparator("name".getBytes());//判断列名是否name
    QualifierFilter filter=new QualifierFilter(CompareOp.EQUAL, comp);//QualifierFilter :用于列名 Qualifier过滤
    3、ColumnPrefixFilter :用于列名 Qualifier )前缀过滤,即包含某个前缀的所有列名。输出列名以ha开头的数据。
    ColumnPrefixFilter filter =new ColumnPrefixFilter("ha".getBytes());//ColumnPrefixFilter :用于列名 Qualifier 前缀过滤,即包含某个前缀的所有列名。
    行键过滤器
    1、RowFilter :行键过滤器,一般来讲,执行 Scan 使用 startRow stopRow 方式比较好,而RowFilter 过滤器也可以完成对某一行的过滤。输出rowkey大于1009的行。
    RowFilter filter = new RowFilter(CompareOp.GREATER, new BinaryComparator("1009".getBytes()));//rowkey大于1009的数据
    2、RandomRowFilter :该过滤器是随机选择一行的过滤器。参数 chance 是一个浮点值,介于0.1 和 1.0 之间。随机输出一半的行数据。
    RandomRowFilter filter = new RandomRowFilter(0.5f);
    时间戳过滤器

    TimestampsFilter 使用说明:该过滤器允许针对返回给客户端的时间版本进行更细粒度的控制,使用的时候,可以提供一个返回的时间戳的列表,只有与时间戳匹配的单元才可以返回。当做多行扫描或者是单行检索时,如果需要一个时间区间,可以在 Get 或 Scan 对象上使用 setTimeRange 方法来实现这一点。输出指定 两个时间戳的数据。
    //时间戳过滤器
    List timestamp = new ArrayList<>();
    timestamp.add(1571438854697L);
    timestamp.add(1571438854543L);
    TimestampsFilter filter = new TimestampsFilter(timestamp);
    列值过滤

    ValueFilter:按照具体的值来筛选单元格的过滤器,这会把一行中值不能满足的单元格过滤掉。输出值为100的数据
    ValueFilter filter = new ValueFilter(CompareOp.EQUAL, new BinaryPrefixComparator("100".getBytes()));
    结构过滤器 FilterList

    FilterList 代表一个过滤器链,它可以包含一组即将应用于目标数据集的过滤器,过滤器间有“与”“FilterList.Operator.MUST_PASS_ALL 和“或”FilterList.Operator.MUST_PASS_ONE 关系 。输出“Grade”表中,“course”簇里“hadoop”和“math”都为100的数据。
    BinaryComparator comp = new BinaryComparator("100".getBytes());//包含S
    SingleColumnValueFilter filter1 = new SingleColumnValueFilter("course".getBytes(), "hadoop".getBytes(), CompareOp.EQUAL, comp);
    comp = new BinaryComparator("100".getBytes());//包含S
    SingleColumnValueFilter filter2 = new SingleColumnValueFilter("course".getBytes(), "math".getBytes(), CompareOp.EQUAL, comp);

    	List<Filter> filters = new ArrayList <Filter>();
    	filters.add(filter1);
    	filters.add(filter2);
    	FilterList filter = new FilterList (FilterList.Operator.MUST_PASS_ALL,filters);
  • 相关阅读:
    数据结构之队列
    数据结构之循环链表-c语言实现
    数据结构之栈-c语言实现
    数据结构之栈
    vue v-model原理实现
    vue中使用mixins
    async和await
    vue组件中使用watch响应数据
    vue组件中使用<transition></transition>标签过渡动画
    react-motion 动画案例介绍
  • 原文地址:https://www.cnblogs.com/hbym/p/15065765.html
Copyright © 2020-2023  润新知