scala实现hbase的分页查询,并封装PageInfo

本文介绍了如何在Scala中实现HBase的分页查询,由于HBase的limit功能仅支持查询前n条数据,作者通过row键实现了特定区间段的分页。文中提供了一个PageInfo的代码示例,适用于数据量较小的场景,对于百万千万级别数据的分布式表,此方法仍然可行。
摘要由CSDN通过智能技术生成

在mysql,oracle等关系型数据库的时候,实现分页查询很简单,只需要在写sql语句的时候,用limit就可以了,最近在做大数据,需要页面的展示,不得不查询hbase数据库,又不能一次显示的数据太多,所以就想到了分页,在最新的hbase中我们进入shell命令下,也有limit的实现,但是hbase的limit只能是查询前多少条内容,不能查询某个区间段的。于是我是用row来做的分页查询。

下面是PageInfo的代码:

import java.util
import java.util.{LinkedHashMap, Map}
import org.apache.hadoop.hbase.client.{ Result, ResultScanner}
import org.apache.hadoop.hbase.filter.{SingleColumnValueFilter, Filter, CompareFilter}
import org.apache.hadoop.hbase.util.Bytes

/**
 * Created by zhaocd on 2015-10-19.
 */
class PageInfo {
   var currentPage: Int = 1//第几页
   var pageSize: Int = 20//每页条数
   var totalPage: Int = 0//总页数
   var totalCount: Int = 0//总条数

   var resultList: Object = new util.LinkedList()//存放结果集的集合

  def getCurrentPage: Int = {
    return currentPage
  }

  def setCurrentPage(currentPage: Int) {
    this.currentPage = currentPage
  }

  def getPageSize: Int = {
    return pageSize
  }

  def getResultList: Object={
    return resultList
  }
  def setResultList(resultList:Object ) {
    this.resultList=resultList
  }
  def setPageSize(pageSize: Int) {
    this.pageSize = pageSize
  }

  def getTotalPage: Int = {
    return totalPage
  }

  def setTotalPage(totalPage: Int) {
    this.totalPage = totalPage
  }

  def getTotalCount: Int = {
    return totalCount
  }

  def setTotalCount(totalCount: Int) {
    th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值