这里在打印时用了CellUtil.clone方法后,我们还需要自己去指定它的偏移量和长度,还需要加cell.getFamilyOffset(), cell.getFamilyLength()以免打印出来乱码,由于在底层,没有找准相关参数的位置,通过这两个方法(即偏移量的处理)就能精准的定位。public void get3() throws IOException {//1. 创建get对象Get get = new Get(Bytes.toBytes("001"));//2. 查询数据,返回结果对象Result result = table.get(get);//3. 获取cell的扫描器CellScanner cellScanner = result.cellScanner();//4. 遍历扫描器while(cellScanner.advance()) {//5. 获取单词扫描的CellCell cell = cellScanner.current();System.out.println(new String(CellUtil.cloneRow(cell))); // 行键System.out.println(new String(CellUtil.cloneFamily(cell))); // 列簇System.out.println(new String(CellUtil.cloneQualifier(cell))); // 列名System.out.println(new String(CellUtil.cloneValue(cell))); // 列值}}
查看答案
如下代码,实现的是()过滤器的功能。public void familyFilter() throws IOException {FamilyFilter familyFilter = new FamilyFilter(CompareOperator.EQUAL,new BinaryComparator(Bytes.toBytes("zhangsan_info")));HBaseUtils.showResult(familyFilter);}
A. 列族过滤器
B. 列名过滤器
C. 列前缀过滤器
D. 行键过滤器
如下代码,实现的是( )过滤器的功能。public void qualifierFilter() throws IOException {QualifierFilter qualifierFilter = new QualifierFilter(CompareOperator.EQUAL,new BinaryComparator(Bytes.toBytes("height")));HBaseUtils.showResult(qualifierFilter);}
A. 列前缀过滤器
B. 列名过滤器
C. 列族过滤器
D. 行键过滤器
如下代码,实现的是()过滤器的功能。public void columnPrefixFilter() throws IOException {ColumnPrefixFilter columnPrefixFilter = new ColumnPrefixFilter(Bytes.toBytes("a"));HBaseUtils.showResult(columnPrefixFilter);}
A. 列前缀过滤器
B. 列名过滤器
C. 行键过滤器
D. 列族过滤器
HBase为筛选数据提供了一组过滤器,通过过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列名,时间戳定位)。
A. 对
B. 错