当前位置: 首页 > 知识库问答 >
问题:

如何克服scala nosuchmethoderror?

蔺霄
2023-03-14

刚刚开始使用scala和spark来运行这个简单的程序:

package spark.example

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SparkGrep {
  def main(args: Array[String] = Array("default argument")) {
    val conf = new SparkConf().setAppName("SparkGrep").setMaster("localhost")
    val sc = new SparkContext(conf)
    val inputFile = sc.textFile("/Users/eugene/Downloads/hello.txt").cache()
    val matchTerm : String = "hello"
    val numMatches = inputFile.filter(line => line.contains(matchTerm)).count()
    println("%s lines in %s contain %s".format(numMatches, args(1), matchTerm))
    System.exit(0)
  }
}
Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
    at akka.actor.ActorCell$.<init>(ActorCell.scala:305)
    at akka.actor.ActorCell$.<clinit>(ActorCell.scala)
    at akka.actor.RootActorPath.$div(ActorPath.scala:152)
    at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:465)
    at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:124)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(DynamicAccess.scala:78)
    at scala.util.Try$.apply(Try.scala:192)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:73)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at scala.util.Success.flatMap(Try.scala:231)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84)
    at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:550)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:111)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:104)
    at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:96)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:126)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:139)
    at spark.example.SparkGrep$.main(SparkGrep.scala:14)
    at spark.example.SparkGrep.main(SparkGrep.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

共有1个答案

诸葛苏燕
2023-03-14

这是一个很常见的错误,因为它忘记了Spark是针对Scala的旧版本(从Spark 1.6.1开始的2.10.x(Spark 2.0很快会对此进行更改))编译的。

更改您的代码以使用所述版本进行编译应该可以解决您的运行时问题。

 类似资料:
  • 当我的应用程序安装到Android L preview时,它会失败,出现错误: install_failed_no_matching_abis。 我的应用程序只使用arm库,使用库的功能在x86上被禁用。它在Android L之前工作得很完美,但现在我连它都装不上了。如何为我的应用程序禁用此错误?

  • 我有一个基本的口述如下: 当我尝试执行时,我得到: 我该怎么做才能使我的字典样本能够克服上面的错误? 注意:尽管可能不相关,但字典是从中检索记录生成的,其中,当我打印出时,输出为。

  • 问题内容: 我已经在其中一个视频教程中看到了下面的代码。它可以很好地执行,但是当我尝试在系统中执行时,它可以很好地编译,但是我遇到了运行时错误, 有人可以指导我这段代码有什么问题以及如何纠正吗? 提前致谢! 问题答案: __当您尝试访问数组中不存在的索引处的元素时,将发生 ArrayIndexOutOfBoundsException 。 例如:假设int a [] = {2,4,5,10,3}是一

  • 问题内容: 我实现了一个ajax轮询脚本,该脚本每10秒在服务器Controller中调用一次操作。通过响应,我替换了的内容: 这是通过 https 完成的。经过一段时间的“空闲”,IE会显示以下消息: 该页面正在访问不受其控制的信息。这带来了安全风险。你想继续吗? 如果用户单击“ 是” ,则页面将重定向到仅显示响应的页面。如果用户单击“ 否” ,则什么都不会发生,但是不会刷新容器。 我知道我可以

  • 问题内容: 我在项目中使用了多个Android库和模块。每个都有自己的v4.Support库。我正在获取 java.util.zip.ZipException:重复条目 。当我在项目中搜索重复的类文件时,由于每个库中都有多个v4.support lib,这些类有多个文件。我知道这个问题在这里已经被问过很多遍了,但对我来说却无济于事。 我的问题是:如何删除这些多个v4.support文件?我只想将此

  • 我正在使用spark 2.4.2读取包含600条记录的csv。最后100条记录有大量数据。我遇到的问题是, 我已经增加了到2g(最大允许设置)和火花驱动程序内存到1g,能够处理更多的记录,但仍然不能处理csv中的所有记录。 我试着翻页600条记录。e、 对于6个分区,我可以在每个分区处理100条记录,但由于最后100条记录太多,因此会发生缓冲区溢出。 在这种情况下,最后100条记录很大,但这可能是