Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.NoSuchMethodError:scala.Predef$.longarayops([J)[J]_Java_Scala_Apache Spark - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.NoSuchMethodError:scala.Predef$.longarayops([J)[J]

“线程中的异常”;“主要”;java.lang.NoSuchMethodError:scala.Predef$.longarayops([J)[J],java,scala,apache-spark,Java,Scala,Apache Spark,我有一个简单的Scala对象,它创建RDD,然后收集并打印所有元素 我在Eclipse上创建了一个Maven项目,并添加了Scala库2.12.3 在pom.xml中,我添加了spark 2.4.3依赖项,如下所示: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <versi

我有一个简单的Scala对象,它创建RDD,然后收集并打印所有元素

我在Eclipse上创建了一个Maven项目,并添加了Scala库2.12.3 在pom.xml中,我添加了spark 2.4.3依赖项,如下所示:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>2.4.3</version>
</dependency>
罪魁祸首似乎是scala代码中的r1.collect.foreach(println),其中r1是从范围(1,50)创建的rdd

是的,我在Eclipse上有Scala 2.12.3和Spark 2.4.3,还有我的终端,所以版本不兼容似乎不是问题所在


有人可以帮忙吗?

这是一个明确的版本问题。尽管您声称使用2.12.x,但似乎没有其他东西指向旧版本的scala,请尝试清理和构建。请验证您使用的maven或sbt中的依赖项

也做 文件->项目结构->全局库->删除SDK->重建

如果您使用的是intellij,则类路径下的所有外部库将如下图所示…在外部库部分下列出

找到递减的一种方法是使用classloader

val  urls = urlsinclasspath(getClass.getClassLoader).foreach(println)


def urlsinclasspath(cl: ClassLoader): Array[java.net.URL] = cl match {
    case null => Array()
    case u: java.net.URLClassLoader => u.getURLs() ++ urlsinclasspath(cl.getParent)
    case _ => urlsinclasspath(cl.getParent)
  }



使用此功能,您可以打印从intellij或使用群集的驱动程序运行的项目的类路径中的所有JAR。

谢谢@Ram我在pom.xml中列出了以下依赖项
junit junit 3.8.1测试
org.scala-lang scala library 2.12.3 org.apache.spark spark-core_2.12 2.4.3也在我的Eclipse IDE中,scala library容器[2.12.3]是作为Maven项目的一部分导入的。在我的终端中,scala版本是scala code runner版本2.12.3——版权2002-2017,LAMP/EPFL和Lightbend,Inc.好的,所以我刚刚检查了Spark 2.4.3正在使用的scala版本,它似乎是2.11.12
/Spark submit——版本欢迎使用_____/使用Scala 2.11.12版**OpenJDK 64位服务器虚拟机,用户在2019-05-01T05:08:38Z修订版上编译的1.8.0分支
我如何使Spark 2.4.3在Scala 2.12.3上运行?如果您同意以下答案
val  urls = urlsinclasspath(getClass.getClassLoader).foreach(println)


def urlsinclasspath(cl: ClassLoader): Array[java.net.URL] = cl match {
    case null => Array()
    case u: java.net.URLClassLoader => u.getURLs() ++ urlsinclasspath(cl.getParent)
    case _ => urlsinclasspath(cl.getParent)
  }