Phoenix读写

/**
    * http://phoenix.apache.org/phoenix_spark.html官方api,可惜不懂像查mysql那样传sql
    * */
  def loadPhoenixTable(sqlContext:HiveContext,table:String): DataFrame ={
    sqlContext.load(
      "org.apache.phoenix.spark",
      Map("table" -> table, "zkUrl" -> CluserProperties.PHOENIX_ZKURL)
    )
  }

  /**
    * jdbc方式传sql查询Phoenix,字符串比较时候注意单、双引号(不同于mysql通用)
    * */
  def queryPhoenix(sql:String){
    var cc: Connection = null
    val driver: String = "org.apache.phoenix.jdbc.PhoenixDriver"
    val url: String = "jdbc:phoenix:slave7:2181"
    Class.forName(driver)
    cc = DriverManager.getConnection(url)
    val conn: Connection = DriverManager.getConnection(url)
    val statement: Statement = conn.createStatement
    val time: Long = System.currentTimeMillis
//    val sql: String = "select date,serv,info from T_ARATE where date>$start and date<$end"
//    val rs: ResultSet = statement.executeQuery(s"select date,serv,info from T_ARATE where date>$start and date<$end")
    val rs: ResultSet = statement.executeQuery(sql)
    while (rs.next) {
      val info=rs.getString("info")
      println(info)
    }
  }
/**
  * 保存数据到Phoenix
  *
  * @param dataFrame  dataFrame
  * @param tableName  表名
  */
def saveDataFrameToPhoenixNew(dataFrame: DataFrame, tableName: String) = {
  dataFrame.write.format("org.apache.phoenix.spark")
    .mode(SaveMode.Overwrite)
    .option("driver", "org.apache.phoenix.jdbc.PhoenixDriver")
    .option("zkUrl", CluserProperties.PHOENIX_ZKURL)
    .option("table", tableName)
    .save()
}

 

附(参考直接读写hbase):

https://blog.youkuaiyun.com/qq_41851454/article/details/80784899

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值