尝试运行Spark时,我收到NoClassDefFound错误 . 我无法弄清楚这背后的原因 . 请帮忙 .
线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / spark / sql / SchemaRDD at java.lang.Class.getDeclaredMethods0(Native Method)at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)at java.lang.Class.privateGetMethodRecursive(Class.java:3048)at java.lang.Class.getMethod0(Class.java:3018)at java.lang.Class.getMethod(Class.java:1784)org.apache.spark .deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ org.apache.spache.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:180)org.apache上的$ SparkSubmit $$ runMain(SparkSubmit.scala:659) .spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:205)atg.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:120)at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit .scala)由java.lang.ClassLoader.loadClass(ClassLoader.java:424)中的java.net.URLClassLoader.findClass(URLClassLoader.java:381)中的java.lang.ClassNotFoundException:org.apache.spark.sql.SchemaRDD引起)在java.lang.ClassLoader.loadClass(ClassLoader.java:357) . ..还有10个
1 回答
NoClassDefFoundError表示Java无法找到它正在寻找的类 . 这通常意味着:
你错误地定义了类路径 .
Java正在寻找并使用错误版本的jar(可能是因为Maven依赖地狱) .
1的解决方案是检查类路径:确保包含定义
org.apache.spark.sql.SchemaRDD
的jar .2的解决方案是检查您是否具有依赖于(传递上)定义该类的旧版本资源的Maven依赖项 .