Hbase中ResultScanner获取到查询到的对象Arrays.toString(CellUtil.cloneQualifier(cell))、new String(CellUtil.cloneQualifier(cell)) 、Bytes.toString(CellUtil.cloneQualifier(cell))
java编写扫描hbase表操作的时候返回的对象ResultScanner
可以理解为result记录一行数据,cell数据,Resultscanner记录多行数据,result数组
我对这些还都不太理解,不知道是个什么样子的结构。
for (Result result : scanner) { Cell[] cells = result.rawCells(); for (Cell cell : cells) { System.out.println(new String(CellUtil.cloneQualifier(cell))); } System.out.println("---"); } }
我一开始写的是 Arrays.toString(CellUtil.cloneQualifier(cell)) 结果发现查询到的数据并不是我想要的,输出的是类似于 [177,299,872] 这样子的数据
然后我换成new String( CellUtil.cloneQualifier(cell) ) 获取出来了一些奇奇怪怪的中文,
最后换成Bytes.toString(CellUtil.cloneQualifier(cell))才能显示出我我想要的结果
我对这部分的理解还是不够清楚。
我的理解是:这里的cell是一个下面的一行数据,CellUtil中提供的clonexxxx的方法可以获取对应的rowkey、columnFamily、columnName(cloneQualifier)、还有value值,而这个result是不同的rowkey化为一个result,scanner是获取到整个表的数据,由不同的rowkey组成,一个rowkey可以对应多组列。