2017-04-06 54 views
0

在創建配置單元上下文時,我發現下面的錯誤。你能幫我解決這個問題嗎?我附上了我的代碼,pom文件以及與帖子的異常。在Itellij中創建Hive上下文的問題

在創建配置單元上下文時,我發現下面的錯誤。你能幫我解決這個問題嗎?我附上了我的代碼,pom文件以及與帖子的異常。

在創建配置單元上下文時,我發現下面的錯誤。你能幫我解決這個問題嗎?我附上了我的代碼,pom文件以及與帖子的異常。

POM文件: -

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>ScalaTest</groupId> 
    <artifactId>Test</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 

     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.10</artifactId> 
      <version>1.6.0</version> 
      <type>test-jar</type> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.scalatest</groupId> 
      <artifactId>scalatest_2.10</artifactId> 
      <version>2.2.6</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-sql_2.10</artifactId> 
      <version>1.6.0</version> 


     </dependency> 

     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-hive_2.10</artifactId> 
      <version>1.5.0</version> 


     </dependency> 
     <!-- Scala --> 

     <dependency> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-library</artifactId> 
      <version>2.10.5</version> 
      <scope>compile</scope> 
      <optional>true</optional> 
     </dependency> 

     <dependency> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
       <version>1.2.17</version> 
     </dependency> 

     <dependency> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-compiler</artifactId> 
      <version>2.10.5</version> 
      <scope>compile</scope> 
      <optional>true</optional> 
     </dependency> 
     <!-- END Scala --> 
    </dependencies> 
    <build> 
     <sourceDirectory>src/main/scala</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2.1</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>net.alchim31.maven</groupId> 
       <artifactId>scala-maven-plugin</artifactId> 
       <version>3.2.0</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>testCompile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <sourceDir>src/main/scala</sourceDir> 

        <jvmArgs> 
         <jvmArg>-Xms64m</jvmArg> 
         <jvmArg>-Xmx1024m</jvmArg> 
        </jvmArgs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

代碼: -

import org.apache.spark.SharedSparkContext 
import org.scalatest.FunSuite 
import org.apache.spark.{SparkContext, SparkConf} 
import org.apache.spark.sql.hive.HiveContext 

/** 
    * Created by PSwain on 4/5/2017. 
    */ 
class Test extends FunSuite with SharedSparkContext { 


    test("test initializing spark context") { 
    //val list = List(1, 2, 3, 4) 
    //val rdd = sc.parallelize(list) 
    val hc = new HiveContext(sc) 
    //assert(list.length === rdd.count()) 
    } 
} 

例外: -

A needed class was not found. This could be due to an error in your runpath. Missing class: org/apache/spark/sql/SQLContext$SQLSession 
java.lang.NoClassDefFoundError: org/apache/spark/sql/SQLContext$SQLSession 
    at Test$$anonfun$1.apply$mcV$sp(Test.scala:15) 
    at Test$$anonfun$1.apply(Test.scala:12) 
    at Test$$anonfun$1.apply(Test.scala:12) 
    at org.scalatest.Transformer$$anonfun$apply$1.apply$mcV$sp(Transformer.scala:22) 
    at org.scalatest.OutcomeOf$class.outcomeOf(OutcomeOf.scala:85) 
    at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104) 
    at org.scalatest.Transformer.apply(Transformer.scala:22) 
    at org.scalatest.Transformer.apply(Transformer.scala:20) 
    at org.scalatest.FunSuiteLike$$anon$1.apply(FunSuiteLike.scala:166) 
    at org.scalatest.Suite$class.withFixture(Suite.scala:1122) 
    at org.scalatest.FunSuite.withFixture(FunSuite.scala:1555) 
    at org.scalatest.FunSuiteLike$class.invokeWithFixture$1(FunSuiteLike.scala:163) 
    at org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175) 
    at org.scalatest.FunSuiteLike$$anonfun$runTest$1.apply(FunSuiteLike.scala:175) 
    at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306) 
    at org.scalatest.FunSuiteLike$class.runTest(FunSuiteLike.scala:175) 
    at org.scalatest.FunSuite.runTest(FunSuite.scala:1555) 
    at org.scalatest.FunSuiteLike$$anonfun$runTests$1.apply(FunSuiteLike.scala:208) 
    at org.scalatest.FunSuiteLike$$anonfun$runTests$1.apply(FunSuiteLike.scala:208) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:413) 
    at org.scalatest.SuperEngine$$anonfun$traverseSubNodes$1$1.apply(Engine.scala:401) 
    at scala.collection.immutable.List.foreach(List.scala:318) 
    at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:401) 
    at org.scalatest.SuperEngine.org$scalatest$SuperEngine$$runTestsInBranch(Engine.scala:396) 
    at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:483) 
    at org.scalatest.FunSuiteLike$class.runTests(FunSuiteLike.scala:208) 
    at org.scalatest.FunSuite.runTests(FunSuite.scala:1555) 
    at org.scalatest.Suite$class.run(Suite.scala:1424) 
    at org.scalatest.FunSuite.org$scalatest$FunSuiteLike$$super$run(FunSuite.scala:1555) 
    at org.scalatest.FunSuiteLike$$anonfun$run$1.apply(FunSuiteLike.scala:212) 
    at org.scalatest.FunSuiteLike$$anonfun$run$1.apply(FunSuiteLike.scala:212) 
    at org.scalatest.SuperEngine.runImpl(Engine.scala:545) 
    at org.scalatest.FunSuiteLike$class.run(FunSuiteLike.scala:212) 
    at Test.org$scalatest$BeforeAndAfterAll$$super$run(Test.scala:9) 
    at org.scalatest.BeforeAndAfterAll$class.liftedTree1$1(BeforeAndAfterAll.scala:257) 
    at org.scalatest.BeforeAndAfterAll$class.run(BeforeAndAfterAll.scala:256) 
    at Test.run(Test.scala:9) 
    at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:55) 
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2563) 
    at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2557) 
    at scala.collection.immutable.List.foreach(List.scala:318) 
    at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:2557) 
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1044) 
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1043) 
    at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2722) 
    at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1043) 
    at org.scalatest.tools.Runner$.run(Runner.scala:883) 
    at org.scalatest.tools.Runner.run(Runner.scala) 
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:138) 
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:28) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SQLContext$SQLSession 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 55 more 

回答

2

你的版本火花蜂巢進口不符合其他火花的依賴。它應該是:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-hive_2.10</artifactId> 
    <version>1.6.0</version> 
</dependency>