scala读取hbase
来源:互联网 发布:住宅施工工艺优化 编辑:程序博客网 时间:2024/05/18 04:39
import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor}import org.apache.hadoop.hbase.mapreduce.TableInputFormatimport org.apache.spark.rdd.NewHadoopRDDobject HbaseTest { def main(args: Array[String]) { //0 val conf = HBaseConfiguration.create() conf.set(TableInputFormat.INPUT_TABLE, "tmp") var hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result]) hBaseRDD.count() import scala.collection.JavaConverters._ hBaseRDD.map(tuple => tuple._2).map(result => result.getColumn("cf".getBytes(), "val".getBytes())).map(keyValues => { (keyValues.asScala.reduceLeft { (a, b) => if (a.getTimestamp > b.getTimestamp) a else b }.getRow, keyValues.asScala.reduceLeft { (a, b) => if (a.getTimestamp > b.getTimestamp) a else b }.getValue ) }).take(10) //1 hBaseRDD.map(tuple => tuple._2).map(result => (result.getRow, result.getColumn("cf".getBytes(), "val".getBytes()))).map(row => { ( row._1.map(_.toChar).mkString, row._2.asScala.reduceLeft { (a, b) => if (a.getTimestamp > b.getTimestamp) a else b }.getValue.map(_.toChar).mkString ) }).take(10) //2 conf.set(TableInputFormat.INPUT_TABLE, "test1") //var hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result]) hBaseRDD.map(tuple => tuple._2).map(result => (result.getRow, result.getColumn("lf".getBytes(), "app1".getBytes()))).map(row => if (row._2.size > 0) { ( row._1.map(_.toChar).mkString, row._2.asScala.reduceLeft { (a, b) => if (a.getTimestamp > b.getTimestamp) a else b }.getValue.map(_.toInt).mkString ) }).take(10) //3 import java.nio.ByteBuffer hBaseRDD.map(tuple => tuple._2).map(result => (result.getRow, result.getColumn("lf".getBytes(), "app1".getBytes()))).map(row => if (row._2.size > 0) { ( row._1.map(_.toChar).mkString, ByteBuffer.wrap(row._2.asScala.reduceLeft { (a, b) => if (a.getTimestamp > b.getTimestamp) a else b }.getValue).getLong ) }).take(10) //4 //conf.set(TableInputFormat.SCAN_COLUMN_FAMILY, "lf") conf.set(TableInputFormat.SCAN_COLUMNS, "lf:app1") //var hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result]) import java.nio.ByteBuffer hBaseRDD.map(tuple => tuple._2).map(result => { (result.getRow.map(_.toChar).mkString, ByteBuffer.wrap(result.value).getLong ) }).take(10) //5 val conf = HBaseConfiguration.create() conf.set(TableInputFormat.INPUT_TABLE, "test1") var hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result]) var rows = hBaseRDD.map(tuple => tuple._2).map(result => result.getRow.map(_.toChar).mkString) rows.map(row => row.split("\\|")).map(r => if (r.length > 1) (r(0), r(1)) else (r(0), "")).groupByKey.take(10)}}
//5
val conf = HBaseConfiguration.create()
conf.set(TableInputFormat.INPUT_TABLE, "test1")
var hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result])
var rows = hBaseRDD.map(tuple => tuple._2).map(result => result.getRow.map(_.toChar).mkString)
rows.map(row => row.split("\\|")).map(r => if (r.length > 1) (r(0), r(1)) else (r(0), "") ).groupByKey.take(10)
0 0
- scala读取hbase
- 使用scala,java实现使用phenix读取hbase中数据
- scala Hbase
- hbase-scala
- scala学习-scala读取Hbase表中数据并且做join连接查询
- scala 操作远程hbase
- Hbase Filter Scala 实战
- scala 控制hbase,spark
- Hbase Filter Scala 实战
- hbase-scala-获取连接
- Scala操作Hbase
- 从HBase数据库表中读取数据动态转为DataFrame格式,方便后续用Spark SQL操作(scala实现)
- spark学习-SparkSQL--11-scala版写的SparkSQL程序读取Hbase表注册成表SQL查询
- Scala 的Hbase接口函数
- scala使用hbase新api
- scala spark hbase 操作案例
- 使用scala操作hbase api
- ScalaHbase 使用scala 操作hbase
- react-native中碰到的问题
- docker【3】docker镜像容器安装
- 应用Druid监控SQL语句的执行情况
- 微信开发学习总结-2
- hibernate 多对多(many-to-many)
- scala读取hbase
- 在IOS上捕获视频
- Android开发之NFC介绍及应用
- Bean的属性注入
- leetcode -- Single Number -- 重点--位运算
- rpc调用
- Redis中5种数据结构的使用场景介绍
- js实现继承的5种方式
- hadoop执行jar流程分析