Hi,
> byte [] by = rs.getValue(Bytes.toBytes(tablename));
Result#getValue() doesn't take a table name but a column name in
"family:qualifier" format, so you shouldn't give it the table name here. Also
be aware that single result object represents a row and it will have multiple
columns, so you might want to use Result#row() or Result#list() to iterate
them. (a KeyValue represents a column.)
for (Result result : rscanner) {
for (KeyValue kv : result.row()) {
String vt = Bytes.toString(kv.getValue());
System.out.println("The value is "+ vt);
}
}
Thanks,
--
Tatsuya Kawano (Mr.)
Tokyo, Japan
http://twitter.com/#!/tatsuya6502
On 01/05/2011, at 5:45 PM, how to get the cell value wrote:
> I would like to get specified value from the table which don't mind its
> family
> and column.
> I used ValueFilter to make it ,but i get nothing .
> My code is :
>
> try
> {
> HTable htable = new
> HTable(hconf,Bytes.toBytes(tablename));
>
> ValueFilter vfilter = new
> ValueFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes(value)));
>
> Scan s =new Scan();
> s.setFilter(vfilter);
> ResultScanner rscanner = htable.getScanner(s);
> for(Result rs : rscanner)
> {
> byte [] by =
> rs.getValue(Bytes.toBytes(tablename));
>
> String vt= Bytes.toString(by);
> System.out.println("The value is "+
> vt);
> }
>
> }
> catch(IOException e)
> {
> e.printStackTrace();
> }
>