1
我們有hbase表,我需要掃描它。我必須找到所有行,其中一個特定列具有確切的值,並存在具有確切前綴的其他列。 類似於:如何使用ColumnPrefixFilter進行SingleColumnValueFilter掃描並獲取所有列?
SingleColumnValueFilter filterA =
new SingleColumnValueFilter(COLUMN_FAMILY, COLUMN_1, CompareFilter.CompareOp.EQUAL, Bytes.toBytes(2L));
Filter filterB = new ColumnPrefixFilter(COLUMN_2_PREFIX);
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
filterList.addFilter(filterA);
filterList.addFilter(filterB);
Scan scan = new Scan();
scan.setFilter(filterList);
獨立過濾器工作完美。 filterA
返回COLUMN_1
的值爲2L
的行。 filterB
返回COLUMN_2
存在的行。但是他們一起沒有收益。 那麼我可以將這些過濾器組合在一起嗎?或者我做錯了嗎?
第二個問題具有相同的條件:我可以使用ColumnPrefixFilter
並獲取所有列。我的意思是找到存在COLUMN_2
的行並獲得所有其他列?
可能是一個愚蠢的問題,但你有沒有證實你確實有行滿足兩個條件在一起? (除非你想要一個OR操作,然後你應該把操作符改爲MUST_PASS_ONE) – 2013-03-06 16:30:03
當然可以。有行滿足這兩個條件。我懷疑'ColumnPrefixFilter'不想與過濾器中的其他列一起工作。因爲,如果要將'filterA'更改爲'COLUMN_2'列的過濾值,則代碼運行良好。 – JarrLorck 2013-03-06 20:01:22