使用API对Hbase的存储的数据进行分页显示:
思路:使用pagefilter和rowfilter(比较器使用GREATER),前者控制每页显示数目,后者控制当前页的起始元素。
分类:1、当输入页数小于等于1时,直接显示第一页,
2、当输入页数为2时,求出第一页的最后一个行键,作为比较值,
3、当输入页数大于等于3时,递归调用方法,求出前一页的最后一个行键即可
实现代码:
package lpj.hbase.filter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.client.Admin;
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.Table;
import org.apache.hadoop.hbase.filter.BinaryComparator;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.PageFilter;
import org.apache.hadoop.hbase.filter.RowFilter;
import habase.Utils.GetAdminAndTable;
import habase.Utils.PrintUtils;
public class FilterTest {
public static void main(String[] args) throws Exception {
//显示某张表的第几页pageIndex,几个值pageSize
getPageList("user_info",3, 2);
}
public static void getPageList(String tableName, int pageIndex, int page