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()
}


猜你喜欢

转载自blog.csdn.net/u013303361/article/details/79894265