Hi Ventlam,

You need to make sure the values truly are comparable. In other words,
that you store the values using the same serialization mechanism as
used by the filter. Do a test and read a row that you know that has
that value and print it in hex representation, then do the same for
Bytes.toBytes(value) and compare on a byte level to check. Often the
stored value is slightly different and therefore does not match. The
TestFilter.java has a test for the ValueFilter and it passes, so this
seems to be something with your data?

Lars

On Wed, Jan 5, 2011 at 12:55 PM, ventlam <[email protected]> wrote:
>   hey,guy!
>    I would like to get the cell value via the key word like"viki" . I used
> ValueFilter to implement it ,but i got nothing. Is there any other ideas?
>  My code as follow:
> 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();
>                }
>
>

Reply via email to