我的Hbase表的ROWID以這樣一種方式進行結構化,它的第一個子字符串是一個固定的字符串,例如ABC,其餘的是可變的。例如我的rowid的樣子:如何在ROWID中使用LIKE在HBase中進行搜索?
ABC_12345
ABC_89778
ABC_64994
...
..
我怎麼能寫HBASE查詢以這樣的方式,如果我提供「ABC」,我得到的所有行使用一些行篩選器實現掃描我的表。
任何幫助,將不勝感激。
感謝 ü
我的Hbase表的ROWID以這樣一種方式進行結構化,它的第一個子字符串是一個固定的字符串,例如ABC,其餘的是可變的。例如我的rowid的樣子:如何在ROWID中使用LIKE在HBase中進行搜索?
ABC_12345
ABC_89778
ABC_64994
...
..
我怎麼能寫HBASE查詢以這樣的方式,如果我提供「ABC」,我得到的所有行使用一些行篩選器實現掃描我的表。
任何幫助,將不勝感激。
感謝 ü
您可以同時使用,具有RegexStringComparator
過濾器Scan
。類似這樣的:
String regEx = "^ABC";
Filter regExFilter = new RowFilter(CompareFilter.CompareOp.EQUAL,
new RegexStringComparator(regEx));
Scan scan = new Scan();
scan.setFilter(regExFilter);
你也可以試試SubstringComparator。 來自文檔: 此比較器適用於SingleColumnValueFilter,用於根據給定列的值進行過濾。用它來測試給定的子字符串是否出現在列中的單元格值中。比較是不區分大小寫的。 只有EQUAL或NOT_EQUAL測試對此比較器有效。
例如: SingleColumnValueFilter scvf =
new SingleColumnValueFilter("col", CompareOp.EQUAL,
new SubstringComparator("substr"));
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/SubstringComparator.html
你怎麼能做到這一點在HBase的外殼。 – 2016-10-18 05:17:58