spark-hbase数据操作心得

本文主要分享作者在使用Spark程序操作HBase时的个人心得,包括如何定义方法进行读写,并提供了两种具体操作方式:1) 扫描全表获取Map或List;2) 通过rowkey获取特定数据。建议在数据量不大时使用此类方法,若数据量大则不推荐。
摘要由CSDN通过智能技术生成

通过spark程序读写hbase的方法百度上太多了,这里我就不一一列举,这里我要分享的是我在开发spark程序对hbase读写时喜欢使用的方法,水平有限,还望指点。

我的hbase表结构是简单的rowkey + cfamily:”INFO” + value

首先,定义几个方法

/**
* 扫描全表,返回数据集
* @param connection: Connection
* @param tableName: String
* @return Map[String,List[(String,String)]]  返回值为rowKey->List[(column ,value)]
*/
def getResultMap(connection: Connection, tableName: String): Map[String, List[(String, String)]] = {
    connection.getTable(TableName.valueOf(tableName)).getScanner(new Scan).toList
    .map(result =>
        (new String(result.getRow),result.raw.toList.map(cv => (new String(cv.getQualifier), new String(cv.getValue))))
        ).toMap
  }

/**
* 通过rowkey,get对应的结果
* @param connection: Connection
* @param tableName: String
* @param key: String
* @return Map[String, String]  返回值为column -> value
*/
def getResultMap(connection: Connection, tableName: String, key: String): Map[String, String] = {
    val userTable = TableName.valueOf(tableName)
    val tabl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值