无法使用 Hive 支持实例化 SparkSession,因为找不到 Hive 类 [重复]

Posted

技术标签:

【中文标题】无法使用 Hive 支持实例化 SparkSession,因为找不到 Hive 类 [重复]【英文标题】:Unable to instantiate SparkSession with Hive support because Hive classes are not found [duplicate] 【发布时间】:2019-01-25 09:40:37 【问题描述】:

我的系统中没有安装 hadoop,但我有 winutils 我在本地运行 hive 时遇到此错误:-

Exception in thread "main" java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found.
at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:869)
at com.sebi.count.ScalaSix$.main(ScalaSix.scala:14)
at com.sebi.count.ScalaSix.main(ScalaSix.scala)

我的代码是:-

package com.sebi.count

import org.apache.spark.sql.SparkSession

object ScalaSix 
  
 def main(args: Array[String]): Unit = 
   System.setProperty("hadoop.home.dir", "C:/winutils")
   val warehouseLocation = "spark-warehouse"
   val spark = SparkSession.builder().appName("Spark Hive Example")
     .config("spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport().getOrCreate()
   spark.sparkContext.setLogLevel("ERROR")
   val df = spark.sql("CREATE TABLE IF NOT EXITS NAME(Id Int, Name String, Age Int,Salary Int)")
   val df1  = spark.sql("LOAD DATA LOCAL INPATH 'C:/Users/rittde/IdeaProjects/untitled/src/main/resources' " +
     "into table Name")
   val df2 = spark.sql("select * from Name")
   df2.show()
 


我的 sbt 依赖是:-

name := "untitled"
version := "0.1"
    
scalaVersion := "2.11.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.0" %"provided"

您能否建议如何解决该错误。提前致谢。

【问题讨论】:

但是发布的答案并没有解决我的疑问,错误仍然是他们的。 您可以在编译前尝试在类路径中包含 Hive jar,从错误消息中似乎无法找到所需的类。尝试添加 hive 相关的库依赖项,看看是否有效。 【参考方案1】:

我有同样的错误。我通过改变解决了它

libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.3" % "provided"

libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.3"

就我而言。 这是一个解释sbt % "provide"配置的链接。 SBT assembly jar exclusion

【讨论】:

以上是关于无法使用 Hive 支持实例化 SparkSession,因为找不到 Hive 类 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SparkSQL 错误:org.apache.hadoop.hive.ql.metadata.HiveException:无法实例化 org.apache.hadoop.hive.ql.metadat

无法在Postgres中实例化外部Hive Metastore /在类路径中找不到驱动程序

如何修复 pyspark EMR Notebook 上的错误 - AnalysisException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionH

实例化“org.apache.spark.sql.hive.HiveExternalCatalog”时出错

Sparks enableHiveSupport [重复]

ide-dtwave指南(数栖平台)