无法使用 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