spark操作读取hbase实例
来源:互联网 发布:linux elinks命令 编辑:程序博客网 时间:2024/04/30 20:33
博主项目实践中,经常需要用spark从hbase中读取数据。其中,spark的版本为1.6,hbase的版本为0.98。现在记录一下如何在spark中操作读取hbase中的数据。
对于这种操作型的需求,没有什么比直接上代码更简单明了的了。so,show me the code!
object Demo extends Logging{ val CF_FOR_FAMILY_USER = Bytes.toBytes("U"); val CF_FOR_FAMILY_DEVICE = Bytes.toBytes("D") val QF_FOR_MODEL = Bytes.toBytes("model") val HBASE_CLUSTER = "hbase://xxx/" val TABLE_NAME = "xxx"; val HBASE_TABLE = HBASE_CLUSTER + TABLE_NAME def genData(sc:SparkContext) = { //20161229的数据,rowkey的设计为9999-yyyyMMdd val filter_of_1229 = new RowFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("79838770")) //得到qf为w:00-23的数据 val filter_of_qf = new QualifierFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("w")) val all_filters = new util.ArrayList[Filter]() all_filters.add(filter_of_1229) all_filters.add(filter_of_qf) //hbase多个过滤器 val filterList = new FilterList(all_filters) val scan = new Scan().addFamily(CF_FOR_FAMILY_USER) scan.setFilter(filterList) scan.setCaching(1000) scan.setCacheBlocks(false) val conf = HBaseConfiguration.create() conf.set(TableInputFormat.INPUT_TABLE,HBASE_TABLE ) conf.set(TableInputFormat.SCAN, Base64.encodeBytes(ProtobufUtil.toScan(scan).toByteArray())) sc.newAPIHadoopRDD(conf,classOf[TableInputFormat],classOf[ImmutableBytesWritable],classOf[Result]) //后面是针对hbase查询结果的具体业务逻辑 .map() ... def main(args: Array[String]): Unit = { val Array(output_path) = args val sparkConf = new SparkConf().setAppName("demo") sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer") val sc = new SparkContext(sparkConf) genUuidWifi(sc).saveAsTextFile(output_path) sc.stop() }}
需要注意的一个小点就是如果hbase里有多个过滤器,注意需要使用FilterList。
0 0
- spark操作读取hbase实例
- Spark读取Hbase
- Spark Hbase读取操作的一些总结与测试
- Spark 读取Hbase表数据并实现类似groupByKey操作
- sparkOnHbase 解决spark读取hbase数据后不能分布式操作
- Spark操作hbase
- spark 操作 hbase
- spark操作hbase
- spark操作hbase
- Spark操作Hbase
- spark操作hbase
- spark操作HBASE
- Spark读取Hbase中的数据
- Spark读取HBase内容_Java
- Spark读取Hbase中的数据
- spark 读取hbase中的数据
- Spark读取Hbase中的数据
- MapReduce操作hbase实例代码 MapReduce读取文件,存入hbase实例
- TCP、HTTP、Socket
- CKEditor
- Zspace
- spring sse 2.1
- 南邮数据结构实验二---二叉树的基本操作及哈夫曼编码译码系统的实现
- spark操作读取hbase实例
- phpstudy本地搭建域名访问
- Java输入输出流详解
- Android博客周刊专题之#插件化开发#
- javascript基础:Date对象
- 二叉树【链表实现】基础练习
- yum install XX 常见问题和命令
- linux字符设备驱动
- 文章标题 POJ 3673 : Cow Multiplication (水)