加载SQL查询以测试sampleclean时出现Java错误

加载SQL查询以测试sampleclean时出现Java错误,java,scala,apache-spark,hive,Java,Scala,Apache Spark,Hive,请参阅有关安装sampleclean的快速入门指南: 我已遵循快速入门中提供的步骤,并拥有正确的版本: $ javac -version javac 1.7.0_95 $ scala Welcome to Scala version 2.10.5 (OpenJDK 64-Bit Server VM, Java 1.7.0_95) 我无法安装spark-1.2.2,所以我改为安装spark-1.6.1。 在构建spark、更新配置单元配置文件并运行scala命令后,我发现一个j

请参阅有关安装sampleclean的快速入门指南:

我已遵循快速入门中提供的步骤,并拥有正确的版本:

$ javac -version  
javac 1.7.0_95  
$ scala  
Welcome to Scala version 2.10.5 (OpenJDK 64-Bit Server VM, Java 1.7.0_95)  
我无法安装spark-1.2.2,所以我改为安装spark-1.6.1。 在构建spark、更新配置单元配置文件并运行scala命令后,我发现一个java错误:

~/sampleclean/spark-1.6.1$ ./bin/spark-shell --jars sampleclean-v0.1.jar 

scala> import sampleclean.api.SampleCleanContext
import sampleclean.api.SampleCleanContext

scala> val scc = new SampleCleanContext(sc)
scc: sampleclean.api.SampleCleanContext = sampleclean.api.SampleCleanContext@2d15f9f9

scala> scc.hql("CREATE TABLE restaurant(id String, entity String, name String, category String, city String) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'")
java.lang.NoSuchMethodError: sampleclean.api.SampleCleanContext.hql(Ljava/lang/String;)Lorg/apache/spark/sql/DataFrame;
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:31)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:36)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:38)
    at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:40)
    at $iwC$$iwC$$iwC$$iwC.<init>(<console>:42)
    at $iwC$$iwC$$iwC.<init>(<console>:44)
    at $iwC$$iwC.<init>(<console>:46)
    at $iwC.<init>(<console>:48)
    at <init>(<console>:50)
    at .<init>(<console>:54)
    at .<clinit>(<console>)
    at .<init>(<console>:7)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
    at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346)
    at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)
    at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857)
    at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902)
    at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814)
    at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657)
    at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665)
    at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
    at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
    at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945)
    at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059)
    at org.apache.spark.repl.Main$.main(Main.scala:31)
    at org.apache.spark.repl.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
~/sampleclean/spark-1.6.1$./bin/spark-shell-jars sampleclean-v0.1.jar
scala>导入sampleclean.api.SampleCleanContext
导入sampleclean.api.SampleCleanContext
scala>val scc=新的SampleCleanContext(sc)
scc:sampleclean.api.SampleCleanContext=sampleclean.api。SampleCleanContext@2d15f9f9
scala>scc.hql(“创建表餐厅(id字符串、实体字符串、名称字符串、类别字符串、城市字符串)行格式分隔字段以“,”结尾,行以“\\n”结尾)
java.lang.NoSuchMethodError:sampleclean.api.SampleCleanContext.hql(Ljava/lang/String;)Lorg/apache/spark/sql/DataFrame;
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:31)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:36)
$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:38)
在$iwC$$iwC$$iwC$$iwC$$iwC。(:40)
在$iwC$$iwC$$iwC$$iwC。(:42)
在$iwC$$iwC$$iwC。(:44)
$iwC$$iwC。(:46)
$iwC。(:48)
在(:50)
在。(:54)
在
在。(:7)
在
$print()
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
位于org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346)
在org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
在org.apache.spark.repl.SparkIMain.exploration上(SparkIMain.scala:871)
在org.apache.spark.repl.SparkIMain.exploration上(SparkIMain.scala:819)
在org.apache.spark.repl.SparkILoop.really上解释$1(SparkILoop.scala:857)
位于org.apache.spark.repl.SparkILoop.interpretatingstartingwith(SparkILoop.scala:902)
位于org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814)
位于org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657)
位于org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665)
位于org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply$mcZ$sp(sparkilop.scala:997)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply(sparkilop.scala:945)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply(sparkilop.scala:945)
位于scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
在org.apache.spark.repl.sparkloop.org$apache$spark$repl$sparkloop$$process上(sparkloop.scala:945)
位于org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059)
位于org.apache.spark.repl.Main$.Main(Main.scala:31)
位于org.apache.spark.repl.Main.Main(Main.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
位于org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
位于org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
位于org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
位于org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我想我已经正确地遵循了所有步骤。此外,我可以看到sampleclean/api/SampleCleanContext.scala中定义的hql函数

是否有人可以帮助解决此错误。

谢谢

除了1.2版之外,我认为sampleClean不能很好地与Spark配合使用。*。如果您确实需要使用sampleClean,则必须安装spark 1.2并开始使用it@SamuelAlexander谢谢你的评论。在经过多次搜索和跳转之后,我成功地运行了spark 1.2(请参阅)。现在我使用了spark1.2,我可以完成sampleclean教程了。