zoukankan      html  css  js  c++  java
  • Spark 读取HBase数据

    Spark1.6.2 读取 HBase 1.2.3

    //hbase-common-1.2.3.jar
    //hbase-protocol-1.2.3.jar
    //hbase-server-1.2.3.jar
    //htrace-core-3.1.0-incubating.jar
    //metrics-core-2.2.0.jar

      val sparkConf = new SparkConf()
          .setAppName("User")
    
        // 创建 spark context
        val sc = new SparkContext(sparkConf)
        val sqlContext = new SQLContext(sc)
        import sqlContext.implicits._
    
        // 创建HBase configuration
        val hBaseConf = HBaseConfiguration.create()
        hBaseConf.set("hbase.zookeeper.quorum", "192.168.1.1,192.168.1.2,192.168.1.3")
        hBaseConf.set("hbase.zookeeper.property.clientPort", "2182"); // zookeeper端口号
        //设置表名
        hBaseConf.set(TableInputFormat.INPUT_TABLE, "knowledge")
    
        // 应用newAPIHadoopRDD读取HBase,返回NewHadoopRDD
        val hbaseRDD = sc.newAPIHadoopRDD(hBaseConf,
          classOf[TableInputFormat],
          classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
          classOf[org.apache.hadoop.hbase.client.Result])
    
        // 将数据映射为表  也就是将 RDD转化为 dataframe schema
        // 读取结果集RDD,返回一个MapPartitionsRDD
        val resRDD = hbaseRDD.map(tuple => tuple._2)
    
        //打印读取数据内容
        val user_knowledge = resRDD.map(r => (Bytes.toString(r.getRow),
          Bytes.toString(r.getValue(Bytes.toBytes("behavior"), Bytes.toBytes("reg_id"))),
          Bytes.toString(r.getValue(Bytes.toBytes("behavior"), Bytes.toBytes("create_user_id"))),
          Bytes.toString(r.getValue(Bytes.toBytes("behavior"), Bytes.toBytes("knowledge_id"))),
          Bytes.toString(r.getValue(Bytes.toBytes("behavior"), Bytes.toBytes("create_time")))) //
          ).toDF("row", "reg_id", "create_user_id", "knowledge_id", "create_time")
    
        user_knowledge.registerTempTable("user_knowledge")
    
        // 测试
        val df2 = sqlContext.sql("SELECT * FROM user_knowledge")
    
        df2.collect.foreach(println)
     
        sc.stop
  • 相关阅读:
    编译问题汇总
    IAP测试购买失败,Error Domain=SKErrorDomain Code=0 "无法连接到 iTunes Store"
    关于H5移动端调试的那些事
    关于JS中this指向的说明
    关于UIControl响应事件说明
    绝对独创---关于直播(推流-拉流-服务器搭建)
    关于直播
    关于公司视频播放由mp4格式向m3u8格式转换的学习
    关于UIView中的endEditing:的使用
    关于UITableViewCell左滑显示多个功能的实现
  • 原文地址:https://www.cnblogs.com/fesh/p/5996656.html
Copyright © 2011-2022 走看看