博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark实现分页查询hbase
阅读量:6076 次
发布时间:2019-06-20

本文共 2126 字,大约阅读时间需要 7 分钟。

第一种:

 

 

 

import org.apache.hadoop.hbase.io.ImmutableBytesWritable  import org.apache.spark.{SparkConf, SparkContext}  import org.apache.hadoop.hbase.mapreduce.TableInputFormat  import org.apache.hadoop.hbase.protobuf.ProtobufUtil  import org.apache.hadoop.hbase.util.{Base64, Bytes}  import org.apache.spark.rdd.RDD  import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.client.Result import org.apache.hadoop.hbase.client.Scan import org.apache.hadoop.hbase.filter._ import org.apache.hadoop.hbase.util.Bytes     val sparkConf = new SparkConf().setAppName("HbaseTest").setMaster("local[1]")     val sc = new SparkContext(sparkConf)     val conf = HBaseConfiguration.create()     conf.set("hbase.zookeeper.quorum",Spark_HbaseUtil.getProperties("bootstrap.servers") )     val tableName = "sinldo:hos_index"     conf.set(TableInputFormat.INPUT_TABLE, tableName)     //开始rowKey和结束rowKey一样代表精确查询的某条数据     val startRowkey = lastRowKey    // 组装scan语句  startRowkey  stopRowkey可以写成参数     val scan = new Scan(Bytes.toBytes(startRowkey))     //true代表不查询全表   scan.setCacheBlocks(true)     scan.setCaching(9)    val filterList: FilterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);     val filter = new PageFilter(10);
val proto = ProtobufUtil.toScan(scan) val scanToString = Base64.encodeBytes(proto.toByteArray) conf.set(TableInputFormat.SCAN, scanToString) val hBaseRDD: RDD[(ImmutableBytesWritable, Result)] = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result]) //获取数量 val count = hBaseRDD.count() println(count)

第二种:将第一种的设置开始RoeKey的地方换成

import org.apache.hadoop.hbase.filter.RowFilter    import org.apache.hadoop.hbase.filter.BinaryComparator;
val filterList: FilterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);     val filter = new PageFilter(10)
  //002e代表开始的rowKey    val rowFilter2: Filter = new RowFilter(CompareFilter.CompareOp.GREATER, new BinaryComparator(Bytes.toBytes("022e")));    filterList.addFilter(filter)    filterList.addFilter(rowFilter2)    scan.setFilter(filterList)

 

转载于:https://www.cnblogs.com/xuesheng/p/9630217.html

你可能感兴趣的文章
安装配置Gradle,以及使用
查看>>
在DDMS中访问data目录【adb shell命令】
查看>>
JAVA 8 Stream小计
查看>>
用C读取INI配置文件 (可在linux平台上用)
查看>>
aspose实现Office转Pdf
查看>>
类与类之间的关系
查看>>
一个单词的记忆之旅
查看>>
安卓加载大图片学习笔记
查看>>
python 读写 json 文件
查看>>
Python获取当前路径下的配置文件
查看>>
伍雨霏-懂游戏的云服务如何保驾护航
查看>>
移动互联网商业发展前景广阔-CNNIC 高级分析师 喻重光
查看>>
【百度地图-安卓SDK】从头开始写android程序
查看>>
rxbus
查看>>
MonkeyRunner Command Summary
查看>>
ios nonatomic + strong + ARC
查看>>
DXperience汉化资源分享
查看>>
MySQL的btree索引和hash索引的区别
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 mailPage
查看>>
sql server 通过sql server 协议进行登录的解析
查看>>