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("---"); } }
其中我一开始并不知道为什么要用 new String() 来转换获取到的 CellUtil.cloneQualifier(cell) 的数据(这里是获取cell中的列名)
所以我一开始写的是 Arrays.toString(CellUtil.cloneQualifier(cell)) 结果发现查询到的数据并不是我想要的,输出的是类似于 [177,299,872] 这样子的数据
然后我换成new String( CellUtil.cloneQualifier(cell) ) 才把我想要得到的列名获取出来。
我对这部分的理解还是不够清楚。
我的理解是:这里的cell是一个下面的一行数据,CellUtil中提供的clonexxxx的方法可以获取对应的rowkey、columnFamily、columnName(cloneQualifier)、还有value值,而这个result是不同的rowkey化为一个result,scanner是获取到整个表的数据,由不同的rowkey组成,一个rowkey可以对应多组列。