Hello Li, Same concept applies, try using 0xFF if using bytes for the key.
esteban. -- Cloudera, Inc. On Mon, Mar 24, 2014 at 10:17 PM, Li Li <[email protected]> wrote: > my rowkey is not a string md5(k1)md5(k1) but the raw bytes > md5(k1) return the raw bytes instead of hex of this string. > the codes: > byte[] array1=DigestUtils.md5(k1); > byte[] array2=DigestUtils.md5(k2); > Put put=new Put(Bytes.add(array1, array2)); > ... > > On Tue, Mar 25, 2014 at 12:33 PM, Esteban Gutierrez > <[email protected]> wrote: > > Hello Li. > > > > Have you tried to do something as simple as appending ~ (ascii 7E, last > > printable ascii symbol) at the end of the start key as the stop key? It > > should work find for you: > > > > > > hbase(main):001:0> put 't1', > > '7fc56270e7a70fa81a5935b72eacbe297fc56270e7a70fa81a5935b72eacbe29', 'c1', > > 'A' > > hbase(main):002:0> put 't1', > > '9d5ed678fe57bcca610140957afab5719d5ed678fe57bcca610140957afab571', 'c1', > > 'B' > > hbase(main):003:0> put 't1', > > '7fc56270e7a70fa81a5935b72eacbe299d5ed678fe57bcca610140957afab571', 'c1', > > 'AB' > > hbase(main):004:0> scan 't1', > > {STARTROW=>'7fc56270e7a70fa81a5935b72eacbe29', > > ENDROW=>'7fc56270e7a70fa81a5935b72eacbe29~'} > > ROW COLUMN+CELL > > 7fc56270e7a70fa81a5935b72eacbe297fc56270e column=c1:, > > timestamp=1395721490980, value=A > > 7a70fa81a5935b72eacbe29 > > 7fc56270e7a70fa81a5935b72eacbe299d5ed678f column=c1:, > > timestamp=1395721814374, value=AB > > e57bcca610140957afab571 > > 2 row(s) in 0.0210 seconds > > > > > > esteban. > > > > > > > > -- > > Cloudera, Inc. > > > > > > > > On Mon, Mar 24, 2014 at 9:17 PM, Li Li <[email protected]> wrote: > > > >> have you understand the question? how to get the 'next' string of a > >> given string? > >> > >> On Tue, Mar 25, 2014 at 11:49 AM, haosdent <[email protected]> wrote: > >> > MD5(abc) = "900150983cd24fb0d6963f7d28e17f72" > >> > So you could set startkey to "900150983cd24fb0d6963f7d28e17f72" and > set > >> > stopkey to "900150983cd24fb0d6963f7d28e17f73". > >> > > >> > > >> > On Tue, Mar 25, 2014 at 11:45 AM, Li Li <[email protected]> wrote: > >> > > >> >> sorry, I want to get all the rows startsWith k1 > >> >> example: > >> >> k1 k2 rowKey > >> >> abc aaa -> MD5(abc)MD5(aaa) > >> >> abc bbb -> MD5(abc)MD5(bbb) > >> >> abd ddd -> MD5(abd)MD5(ddd) > >> >> > >> >> how to use scan to get all rows startswith abc > >> >> > >> >> On Tue, Mar 25, 2014 at 11:40 AM, haosdent <[email protected]> > wrote: > >> >> >>I want to get all the rows equals k1. > >> >> > > >> >> > Use Get(MD5(k1)MD5(k1)) without set startkey and stopkey. > >> >> > > >> >> > > >> >> > On Tue, Mar 25, 2014 at 11:36 AM, Li Li <[email protected]> > wrote: > >> >> > > >> >> >> I have two string as primary key(k1,k2) > >> >> >> and my row key in hbase is MD5(k1)MD5(k1) > >> >> >> I want to get all the rows equals k1.I can set startRowKey easily. > >> >> >> But How can I calculate stopRowKey? > >> >> >> is following correct? what if the last byte of md5 is 127? what > about > >> >> >> overflow? > >> >> >> any tools for this? > >> >> >> > >> >> >> Scan scan=new Scan(); > >> >> >> byte[] start=MD5(key1); > >> >> >> scan.setStartRow(start); > >> >> >> byte[] end=MD5(key1); > >> >> >> end[end.length-1]++ > >> >> >> scan.setStopRow(end); > >> >> >> > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > Best Regards, > >> >> > Haosdent Huang > >> >> > >> > > >> > > >> > > >> > -- > >> > Best Regards, > >> > Haosdent Huang > >> >
