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:30 UTC

[metamodel] 07/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 7250ba1e5d968fa49d81b02ffaa4aaa685c39a7a
Author: 李小保 <li...@mininglamp.com>
AuthorDate: Fri Mar 29 13:49:25 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++;