You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2019/04/01 17:36:34 UTC

[metamodel] 11/16: A filter that will only return the first KV from each row.This filter can be used to more efficiently perform row count operations.

This is an automated email from the ASF dual-hosted git repository.

kaspersor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metamodel.git

commit b3663f6b6cc24712444c4af5d4748e9d983966b5
Author: 李小保 <li...@mininglamp.com>
AuthorDate: Fri Mar 29 14:24:37 2019 +0800

    A filter that will only return the first KV from each row.This filter can be used to more efficiently perform row count operations.
---
 hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
index 1d0db49..fd2125e 100644
--- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
+++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
@@ -31,6 +31,7 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;
 import org.apache.hadoop.hbase.filter.PageFilter;
 import org.apache.metamodel.DataContext;
 import org.apache.metamodel.MetaModelException;
@@ -171,7 +172,9 @@ public class HBaseDataContext extends QueryPostprocessDataContext implements Upd
         long result = 0;
         final org.apache.hadoop.hbase.client.Table hTable = getHTable(table.getName());
         try {
-            ResultScanner scanner = hTable.getScanner(new Scan());
+            Scan scan = new Scan();
+            scan.setFilter(new FirstKeyOnlyFilter());
+            ResultScanner scanner = hTable.getScanner(scan);
             try {
                 while (scanner.next() != null) {
                     result++;