zoukankan      html  css  js  c++  java
  • Hbase Scan 用法

    • public static void main(String[] args) throws IOException {
    • //Scan类常用方法说明
    • //指定需要的family或column ,如果没有调用任何addFamily或Column,会返回所有的columns;
    • // scan.addFamily();
    • // scan.addColumn();
    • // scan.setMaxVersions(); //指定最大的版本个数。如果不带任何参数调用setMaxVersions,表示取所有的版本。如果不掉用setMaxVersions,只会取到最新的版本.
    • // scan.setTimeRange(); //指定最大的时间戳和最小的时间戳,只有在此范围内的cell才能被获取.
    • // scan.setTimeStamp(); //指定时间戳
    • // scan.setFilter(); //指定Filter来过滤掉不需要的信息
    • // scan.setStartRow(); //指定开始的行。如果不调用,则从表头开始;
    • // scan.setStopRow(); //指定结束的行(不含此行);
    • // scan.setBatch(); //指定最多返回的Cell数目。用于防止一行中有过多的数据,导致OutofMemory错误。
    •  
    • //过滤器
    • //1、FilterList代表一个过滤器列表
    • //FilterList.Operator.MUST_PASS_ALL -->and
    • //FilterList.Operator.MUST_PASS_ONE -->or
    • //eg、FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ONE);
    • //2、SingleColumnValueFilter
    • //3、ColumnPrefixFilter用于指定列名前缀值相等
    • //4、MultipleColumnPrefixFilter和ColumnPrefixFilter行为差不多,但可以指定多个前缀。
    • //5、QualifierFilter是基于列名的过滤器。
    • //6、RowFilter
    • //7、RegexStringComparator是支持正则表达式的比较器。
    • //8、SubstringComparator用于检测一个子串是否存在于值中,大小写不敏感。
    •  
    • HTable table=(HTable) getHTablePool().getTable("tb_stu");
    • Scan scan=new Scan();
    • scan.setMaxVersions();
    • //指定最多返回的Cell数目。用于防止一行中有过多的数据,导致OutofMemory错误。
    • scan.setBatch(1000);
    •  
    • //scan.setTimeStamp(NumberUtils.toLong("1370336286283"));
    • //scan.setTimeRange(NumberUtils.toLong("1370336286283"), NumberUtils.toLong("1370336337163"));
    • //scan.setStartRow(Bytes.toBytes("quanzhou"));
    • //scan.setStopRow(Bytes.toBytes("xiamen"));
    • //scan.addFamily(Bytes.toBytes("info"));
    • //scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("id"));
    •  
    • //查询列镞为info,列id值为1的记录
    • //方法一(单个查询)
    • // Filter filter = new SingleColumnValueFilter(
    • // Bytes.toBytes("info"), Bytes.toBytes("id"), CompareOp.EQUAL, Bytes.toBytes("1"));
    • // scan.setFilter(filter);
    •  
    • //方法二(组合查询)
    • //FilterList filterList=new FilterList();
    • //Filter filter = new SingleColumnValueFilter(
    • // Bytes.toBytes("info"), Bytes.toBytes("id"), CompareOp.EQUAL, Bytes.toBytes("1"));
    • //filterList.addFilter(filter);
    • //scan.setFilter(filterList);
    •  
    • ResultScanner rs = table.getScanner(scan);
    •  
    • for (Result r : rs) {
    • for (KeyValue kv : r.raw()) {
    • System.out.println(String.format("row:%s, family:%s, qualifier:%s, qualifiervalue:%s, timestamp:%s.",
    • Bytes.toString(kv.getRow()),
    • Bytes.toString(kv.getFamily()),
    • Bytes.toString(kv.getQualifier()),
    • Bytes.toString(kv.getValue()),
    • kv.getTimestamp()));
    • }
    • }
    •  
    • rs.close();
    • }
  • 相关阅读:
    springboot + quartz + mysql 实现持久化分布式调度
    魔改CNN对cifar-10分类
    网络文本情感计算(一)
    运用循环一致性对抗神经网络进行非配对图片翻译:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
    2020数学建模国赛C题思路(持续更新)
    2020数学建模国赛A题思路(持续更新)
    2020数学建模国赛B题思路(持续更新)
    图像处理学习日志(一)
    LinkedBlockingQueue 和 ConcurrentLinkedQueue的区别
    需求评审
  • 原文地址:https://www.cnblogs.com/shenzhenhuaya/p/bgrhy.html
Copyright © 2011-2022 走看看