zoukankan      html  css  js  c++  java
  • spark使用Hive表操作

    spark Hive表操作

    之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作。

    比如说一个修改表分区的操作

    一.使用HiveServer的方式

    val tblName = "hive_table"
    
    def dropPartitions(tblName: String): Unit = {
    
      val HIVE_SERVER = "jdbc:hive2://192.168.xx.xxx:10000"
    
      import java.sql.DriverManager
    
      Class.forName("org.apache.hive.jdbc.HiveDriver")
    
      val conn = DriverManager.getConnection(HIVE_SERVER, "xxx", "")
    
      val stmt = conn.createStatement()
    
      val addSQL = s"msck repair table $tblName"
      stmt.execute(addSQL)
    
      conn.close()
    }

    二.使用HiveContext的方式

    后来发现通过HiveContext可以实现同样的功能,却方便的多,也不用通过hiveServer,再也不怕hiveServer宕机啦~

    先创建一个HiveContext,当然hiveContext也是可以对Hive表进行查询操作的

    val sqlContext = new HiveContext(sc)
    

    同样功能的函数

    val tblName = "hive_table"
    
    def dropPartitions(tblName: String,sqlContext :HiveContext): Unit = {
    
      sqlContext.sql(s"msck repair table $tblName")
    
    }
  • 相关阅读:
    索引
    互联网技术中的算法摘要
    Struts2(六)
    Struts2(五)
    Struts2(四)
    Struts2(三)
    Struts2(二)
    Struts2(一)
    WebService(三)
    WebService(二)
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6158035.html
Copyright © 2011-2022 走看看