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