spark3.0.1版本查询Hbase数据库例子

需求背景

现有需求,需要采用spark查询hbase数据库的数据同步到中间分析库,记录spark集成hbase的简单例子代码

scala 复制代码
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.{ConnectionFactory, Scan}
import org.apache.hadoop.hbase.util.Bytes
import org.apache.spark.sql.SparkSession

object ReadHBaseData {
  def main(args: Array[String]): Unit = {
    // 创建SparkSession
    val spark = SparkSession.builder()
      .appName("ReadHBaseData")
      .master("local")
      .getOrCreate()
      
    // 创建HBase配置
    val conf = HBaseConfiguration.create()

    // 设置HBase连接参数
    conf.set("hbase.zookeeper.quorum", "localhost")
    conf.set("hbase.zookeeper.property.clientPort", "2181")

    // 创建HBase连接
    val connection = ConnectionFactory.createConnection(conf)

    // 创建HBase表
    val tableName = "my_table"
    val table = connection.getTable(TableName.valueOf(tableName))

    // 创建HBase扫描对象
    val scan = new Scan()

    // 设置要读取的列族和列
    scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("column1"))
    scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("column2"))

    // 执行HBase扫描
    val scanner = table.getScanner(scan)

    // 遍历扫描结果并将结果转换为RDD
    val rdd = spark.sparkContext.parallelize(scanner.iterator().asScala.map(result => {
      val rowKey = Bytes.toString(result.getRow)
      val value1 = Bytes.toString(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("column1")))
      val value2 = Bytes.toString(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("column2")))
      (rowKey, value1, value2)
    }).toList)

    // 将RDD转换为DataFrame
    val df = spark.createDataFrame(rdd).toDF("rowKey", "value1", "value2")

    // 显示DataFrame内容
    df.show()

    // 关闭HBase连接
    scanner.close()
    table.close()
    connection.close()

    // 关闭SparkSession
    spark.stop()
  }
}
 
相关推荐
Q26433650236 小时前
【有源码】基于XGBoost的安卓应用市场数据分析与评分预测系统-面向应用市场的安卓App评分回归预测方法研究
大数据·hadoop·数据挖掘·数据分析·回归·spark·毕业设计
IT毕设梦工厂7 小时前
计算机毕业设计选题推荐:基于大数据的培训机构信息分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·mysql·数据挖掘·数据分析·spark·课程设计
银河技术10 小时前
TB级文本去重实战:从单机 OOM 到 Spark / Ray 分布式架构的工程演进
分布式·微服务·重构·架构·spark·llm·rag
IT研究室11 小时前
最新大数据毕业设计选题推荐-基于大数据的商场购物中心分布运营数据可视化与分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
FYKJ_20101 天前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
User_芊芊君子1 天前
数据库手记:从数据建模到 Spark 对接的实测记录
大数据·数据库·spark
计算机源码社1 天前
【27届大数据毕设】基于Spark的TikTok短视频属性分享与互动比率可视化分析系统 基于机器学习的TikTok短视频认证属性与互动效能关联分析
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
IT研究室1 天前
最新大数据毕业设计选题推荐-基于大数据的生活指数分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
Q26433650232 天前
【有源码】基于Spark的电商客户细分与盈利洞察分析系统-面向精准营销的电商客户细分模型构建与盈利能力可视化研究
大数据·hadoop·分布式·数据挖掘·数据分析·spark·毕业设计
IT研究室2 天前
最新大数据毕业设计选题推荐-基于大数据的线上网站书籍数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计