Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-19 Thread Jean-Marc Spaggiari
I agree with Anil... Store it as an integer, not as as String. That will help for the comparison (be carreful with negative values comparisons.). Worst case, run a MR job to convert them. 2013/7/19 anil gupta anilgupt...@gmail.com Only way to achieve this is to write your own

Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-19 Thread Kevin
The only way I was able to do negative numbers was to create a new WritableComparable that took signed-ness into account, but that involved deploying the class to the cluster. On Fri, Jul 19, 2013 at 10:44 AM, Frank Luo j...@merkleinc.com wrote: OK, let's say it is stored as an integer, how to

RE: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-19 Thread Frank Luo
OK, let's say it is stored as an integer, how to compare then? As Jean-Marc pointed out, negative numbers is greater than positive ones using ByteArrayComparable. -Original Message- From: Jean-Marc Spaggiari [mailto:jean-m...@spaggiari.org] Sent: Friday, July 19, 2013 5:08 AM To:

Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-18 Thread Ted Yu
Looks like you should be able to do so by passing your own comparator to: public SingleColumnValueFilter(final byte [] family, final byte [] qualifier, final CompareOp compareOp, final ByteArrayComparable comparator) { Cheers On Thu, Jul 18, 2013 at 1:20 PM, Frank Luo j...@merkleinc.com

RE: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-18 Thread Frank Luo
That requires creating my own ByteArrayComparable class and deploy to all servers, right? My company doesn't want to customize hbase, hence is not an option to me. -Original Message- From: Ted Yu [mailto:yuzhih...@gmail.com] Sent: Thursday, July 18, 2013 3:25 PM To:

Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-18 Thread Kevin
Sure, try using the BinaryComparator. For example, BinaryComparator c = new BinaryComparator(Bytes.toBytes(200)); System.out.println(c.compareTo(Bytes.toBytes(201))); // returns -1 On Thu, Jul 18, 2013 at 4:28 PM, Frank Luo j...@merkleinc.com wrote: That requires creating my

Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-18 Thread Ted Yu
What would happen to this ? System.out.println(c.compareTo(Bytes.toBytes(30))); On Thu, Jul 18, 2013 at 5:55 PM, Kevin kevin.macksa...@gmail.com wrote: Sure, try using the BinaryComparator. For example, BinaryComparator c = new BinaryComparator(Bytes.toBytes(200));

Re: Hbase: Is possible to filter by integer value if the value is saved as string?

2013-07-18 Thread anil gupta
Only way to achieve this is to write your own ByteArrayComparable. BinaryComparator wont work for your case. But, I am wondering why you would store an Integer as String when you want to do numerical comparison? On Thu, Jul 18, 2013 at 6:03 PM, Ted Yu yuzhih...@gmail.com wrote: What would