我正在尝试构建一个Hive Context,它继承自SQLContext。
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
我收到以下错误:
error: object hive is not a member of package org.apache.spark.sql
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
我可以从自动完成中清楚地看到蜂巢不存在。 关于如何解决这个问题的任何想法?这是来自sparkSQL文档的一个示例。
谢谢
答案 0 :(得分:15)
使用sbt:
您必须在依赖项中包含spark-hive。
为此,请在.sbt文件中添加以下行:
libraryDependencies += "org.apache.spark" %% "spark-hive" % "1.5.0"
答案 1 :(得分:7)
由于hive的依赖关系,默认情况下它不会编译成spark二进制文件,你必须自己构建它。引自website
但是,由于Hive具有大量依赖项,因此它不包含在默认的Spark程序集中。要使用Hive,您必须先运行sbt/sbt -Phive assembly/assembly
(或使用-Phive for maven)。
答案 2 :(得分:2)
这是maven依赖的示例
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.tools.version}</artifactId>
<version>${spark.version}</version>
</dependency>
---对于那些需要知道如何在POM中设置属性的人,下面是一个例子
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<encoding>UTF-8</encoding>
<scala.tools.version>2.10</scala.tools.version>
<scala.version>2.10.4</scala.version>
<spark.version>1.5.0</spark.version>
</properties>
答案 3 :(得分:0)
对于Maven项目,在添加HIVE依赖项后,只需单击&#34;更新项目&#34;通过右键单击您的项目 - &gt; Maven - &gt;更新项目。这应该可以解决问题。