Spark如何从Hive读取和写入数据


val spark = SparkSession
      .builder()
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", warehouseLocation)
      .enableHiveSupport()
      .getOrCreate()

当我使用 spark-shell 从 Hive 中执行查询表spark-sql时,Spark 如何从 Hive 读取和写入数据?是通过JDBC还是其他方式?

如果您将检查spark源代码。 Spark不使用jdbc连接来hive。它使用 Hivemetastore .

def newSession(): SparkSession = {
new SparkSession(sparkContext, Some(sharedState), parentSessionState = None, extensions)}

除了SparkContext,所有共享状态都是懒惰初始化的。此方法将强制初始化共享状态,以确保父会话和子会话设置具有相同的共享状态。如果底层目录实现是Hive,这将初始化元存储,这可能需要一些时间

评论来源 SparkSession.scala

最新更新