0
如果我有一排按鍵,例如如何設置開始和結束行鍵HBASE
a_c
b_c
j_f
f_d
d_c
我應該得到的所有行匹配_c。如何在這裏設置開始和停止行鍵。我試圖從掃描結果中取出開始和停止行鍵,而不是使用rowfilter或其他過濾器類型。
如果我有一排按鍵,例如如何設置開始和結束行鍵HBASE
a_c
b_c
j_f
f_d
d_c
我應該得到的所有行匹配_c。如何在這裏設置開始和停止行鍵。我試圖從掃描結果中取出開始和停止行鍵,而不是使用rowfilter或其他過濾器類型。
如果您不想使用RowFilter
,則可以編寫自己的過濾器功能。但我建議你使用PrefixFilter如果你不能寫自己的過濾功能,並且不希望使用RowFilter
例爲Java:
byte[] prefixF= Bytes.toBytes("_c");
Scan scan = new Scan(prefixF));
PrefixFilter prefixFilter = new PrefixFilter(prefixF);
scan.addFilter(prefixFilter);
ResultScanner resultScanner = table.getScanner(scan);
上面的代碼等於hbase> scan 'YourTablename', { FILTER => "PrefixFilter('_c')"}
謝謝爲你的答案。我不想使用任何自定義過濾器或甚至是rowfilter的原因是,所有這些都涉及全表掃描。這就是我試圖用啓動和停止行鍵來解決的原因。是否有可能獲得具有一些正則表達式的開始和停止行鍵的掃描結果? –
使用掃描功能可以設置'starRow'和'stopRow':'掃描(byte [] startRow,byte [] stopRow)' 爲指定的行範圍創建掃描操作。 它還允許你設置'startRow'和'filter',你應該使用[Filter](https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/Filter.html)class hbase:'Scan(byte [] startRow,Filter filter)'。我認爲可以用'startRow'和'stopRow'創建一個函數,並且在函數內部,你應該使用正則表達式(Pattern,Match來過濾結果,如果你找到另一個解決方案,請告訴我:) –