通过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