本文整理了Java中org.apache.hadoop.hbase.filter.Filter.filterRowKey()
方法的一些代码示例,展示了Filter.filterRowKey()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Filter.filterRowKey()
方法的具体详情如下:
包路径:org.apache.hadoop.hbase.filter.Filter
类名称:Filter
方法名:filterRowKey
[英]Filters a row based on the row key. If this returns true, the entire row will be excluded. If false, each KeyValue in the row will be passed to #filterCell(Cell) below. If #filterAllRemaining() returns true, then #filterRowKey(Cell) should also return true. Concrete implementers can signal a failure condition in their code by throwing an IOException.
[中]基于行键筛选行。如果返回true,则将排除整行。如果为false,则行中的每个键值都将传递给下面的#filterCell(单元格)。如果#filteralremaining()返回true,则#filterRowKey(单元格)也应返回true。具体的实现者可以通过抛出IOException在代码中发出失败条件的信号。
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
boolean value = filter.filterRowKey(buffer, offset, length);
changeFAR(value);
return value;
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(Cell cell) throws IOException {
if (filterAllRemaining()) return true;
return this.filter.filterRowKey(cell);
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
// No call to this.
if (filterAllRemaining()) return true;
return this.filter.filterRowKey(buffer, offset, length);
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(Cell cell) throws IOException {
if (filterAllRemaining()) return true;
boolean value = filter.filterRowKey(cell);
changeFAR(value);
return value;
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
if (isEmpty()) {
return super.filterRowKey(rowKey, offset, length);
}
boolean retVal = false;
for (int i = 0, n = filters.size(); i < n; i++) {
Filter filter = filters.get(i);
if (filter.filterAllRemaining() || filter.filterRowKey(rowKey, offset, length)) {
retVal = true;
}
}
return retVal;
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
if (isEmpty()) {
return super.filterRowKey(rowKey, offset, length);
}
boolean retVal = true;
for (int i = 0, n = filters.size(); i < n; i++) {
Filter filter = filters.get(i);
if (!filter.filterAllRemaining() && !filter.filterRowKey(rowKey, offset, length)) {
retVal = false;
}
}
return retVal;
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(Cell firstRowCell) throws IOException {
if (isEmpty()) {
return super.filterRowKey(firstRowCell);
}
boolean retVal = false;
for (int i = 0, n = filters.size(); i < n; i++) {
Filter filter = filters.get(i);
if (filter.filterAllRemaining() || filter.filterRowKey(firstRowCell)) {
// Can't just return true here, because there are some filters (such as PrefixFilter) which
// will catch the row changed event by filterRowKey(). If we return early here, those
// filters will have no chance to update their row state.
retVal = true;
}
}
return retVal;
}
代码示例来源:origin: apache/hbase
@Override
public boolean filterRowKey(Cell firstRowCell) throws IOException {
if (isEmpty()) {
return super.filterRowKey(firstRowCell);
}
boolean retVal = true;
for (int i = 0, n = filters.size(); i < n; i++) {
Filter filter = filters.get(i);
if (!filter.filterAllRemaining() && !filter.filterRowKey(firstRowCell)) {
// Can't just return false here, because there are some filters (such as PrefixFilter) which
// will catch the row changed event by filterRowKey(). If we return early here, those
// filters will have no chance to update their row state.
retVal = false;
}
}
return retVal;
}
代码示例来源:origin: apache/hbase
private void writeResult(ImmutableBytesWritable key, Result result, Context context)
throws IOException, InterruptedException {
Put put = null;
Delete delete = null;
if (LOG.isTraceEnabled()) {
LOG.trace("Considering the row."
+ Bytes.toString(key.get(), key.getOffset(), key.getLength()));
}
if (filter == null
|| !filter.filterRowKey(PrivateCellUtil.createFirstOnRow(key.get(), key.getOffset(),
(short) key.getLength()))) {
processKV(key, result, context, put, delete);
}
}
代码示例来源:origin: apache/hbase
/**
* @param row The current table row key.
* @param value The columns.
* @param context The current context.
* @throws IOException When something is broken with the data.
*/
@Override
public void map(ImmutableBytesWritable row, Result value,
Context context)
throws IOException {
try {
if (LOG.isTraceEnabled()) {
LOG.trace("Considering the row."
+ Bytes.toString(row.get(), row.getOffset(), row.getLength()));
}
if (filter == null
|| !filter.filterRowKey(PrivateCellUtil.createFirstOnRow(row.get(), row.getOffset(),
(short) row.getLength()))) {
for (Cell kv : value.rawCells()) {
kv = filterKv(filter, kv);
// skip if we filtered it out
if (kv == null) continue;
context.write(row, new MapReduceExtendedCell(convertKv(kv, cfRenameMap)));
}
}
} catch (InterruptedException e) {
LOG.error("Interrupted while emitting Cell", e);
Thread.currentThread().interrupt();
}
}
代码示例来源:origin: apache/hbase
/**
* @param row The current table row key.
* @param value The columns.
* @param context The current context.
* @throws IOException When something is broken with the data.
*/
@Override
public void map(ImmutableBytesWritable row, Result value,
Context context)
throws IOException {
try {
if (LOG.isTraceEnabled()) {
LOG.trace("Considering the row."
+ Bytes.toString(row.get(), row.getOffset(), row.getLength()));
}
if (filter == null || !filter.filterRowKey(
PrivateCellUtil.createFirstOnRow(row.get(), row.getOffset(), (short) row.getLength()))) {
for (Cell kv : value.rawCells()) {
kv = filterKv(filter, kv);
// skip if we filtered it out
if (kv == null) continue;
Cell ret = convertKv(kv, cfRenameMap);
context.write(new CellWritableComparable(ret), ret);
}
}
} catch (InterruptedException e) {
LOG.error("Interrupted while emitting Cell", e);
Thread.currentThread().interrupt();
}
}
代码示例来源:origin: apache/kylin
List<KeyValue> nkvs = new ArrayList<KeyValue>(tmp.size());
for (KeyValue kv : tmp) {
if (filter.filterRowKey(kv.getBuffer(), kv.getRowOffset(), kv.getRowLength())) {
filteredOnRowKey = true;
break;
代码示例来源:origin: apache/hbase
private void stopRowTests(Filter filter) throws Exception {
assertFalse("Filtering on " + Bytes.toString(GOOD_ROW),
filter.filterRowKey(KeyValueUtil.createFirstOnRow(GOOD_ROW)));
assertFalse("Filtering on " + Bytes.toString(STOP_ROW),
filter.filterRowKey(KeyValueUtil.createFirstOnRow(STOP_ROW)));
assertTrue("Filtering on " + Bytes.toString(PAST_STOP_ROW),
filter.filterRowKey(KeyValueUtil.createFirstOnRow(PAST_STOP_ROW)));
assertTrue("FilterAllRemaining", filter.filterAllRemaining());
assertFalse("FilterNotNull", filter.filterRow());
}
代码示例来源:origin: apache/hbase
private void prefixRowTests(Filter filter, boolean lastFilterAllRemaining)
throws Exception {
for (char c = FIRST_CHAR; c <= LAST_CHAR; c++) {
byte [] t = createRow(c);
assertFalse("Failed with character " + c,
filter.filterRowKey(KeyValueUtil.createFirstOnRow(t)));
assertFalse(filter.filterAllRemaining());
}
String yahooSite = "com.yahoo.www";
byte [] yahooSiteBytes = Bytes.toBytes(yahooSite);
assertTrue("Failed with character " +
yahooSite, filter.filterRowKey(KeyValueUtil.createFirstOnRow(yahooSiteBytes)));
assertEquals(filter.filterAllRemaining(), lastFilterAllRemaining);
}
代码示例来源:origin: apache/hbase
private void mpAllTest(Filter filterMPALL) throws Exception {
/* Filter must do all below steps:
* <ul>
* <li>{@link #reset()}</li>
* <li>{@link #filterAllRemaining()} -> true indicates scan is over, false, keep going on.</li>
* <li>{@link #filterRowKey(byte[],int,int)} -> true to drop this row,
* if false, we will also call</li>
* <li>{@link #filterCell(org.apache.hadoop.hbase.KeyValue)} -> true to drop this cell</li>
* <li>{@link #filterRow()} -> last chance to drop entire row based on the sequence of
* filterValue() calls. Eg: filter a row if it doesn't contain a specified column.
* </li>
* </ul>
*/
filterMPALL.reset();
assertFalse(filterMPALL.filterAllRemaining());
byte [] rowkey = Bytes.toBytes("yyyyyyyyy");
for (int i = 0; i < MAX_PAGES - 1; i++) {
assertFalse(filterMPALL.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
Bytes.toBytes(i));
assertTrue(Filter.ReturnCode.INCLUDE == filterMPALL.filterCell(kv));
}
filterMPALL.reset();
rowkey = Bytes.toBytes("z");
assertTrue(filterMPALL.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
// Should fail here; row should be filtered out.
KeyValue kv = new KeyValue(rowkey, rowkey, rowkey, rowkey);
assertTrue(Filter.ReturnCode.NEXT_ROW == filterMPALL.filterCell(kv));
}
代码示例来源:origin: apache/hbase
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(0),
Bytes.toBytes(0));
assertTrue(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(0),
Bytes.toBytes(0));
assertTrue(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
assertTrue(filterMPONE.filterAllRemaining());
代码示例来源:origin: apache/hbase
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
Bytes.toBytes(i));
assertFalse(filterMPONE.filterRowKey(KeyValueUtil.createFirstOnRow(rowkey)));
KeyValue kv = new KeyValue(rowkey, rowkey, Bytes.toBytes(i),
Bytes.toBytes(i));
代码示例来源:origin: org.apache.hbase/hbase-client
@Override
public boolean filterRowKey(byte[] buffer, int offset, int length) throws IOException {
boolean value = filter.filterRowKey(buffer, offset, length);
changeFAR(value);
return value;
}
代码示例来源:origin: org.apache.hbase/hbase-client
@Override
public boolean filterRowKey(Cell cell) throws IOException {
if (filterAllRemaining()) return true;
boolean value = filter.filterRowKey(cell);
changeFAR(value);
return value;
}
代码示例来源:origin: org.apache.hbase/hbase-client
@Override
public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException {
if (isEmpty()) {
return super.filterRowKey(rowKey, offset, length);
}
boolean retVal = true;
for (int i = 0, n = filters.size(); i < n; i++) {
Filter filter = filters.get(i);
if (!filter.filterAllRemaining() && !filter.filterRowKey(rowKey, offset, length)) {
retVal = false;
}
}
return retVal;
}
内容来源于网络,如有侵权,请联系作者删除!