java.lang.NoClassDefFoundError:org / apache / spark / sql / SchemaRDD

时间:2016-01-10 01:59:48

标签: java apache-spark apache-spark-sql

我在尝试运行Spark时遇到NoClassDefFound错误。我无法弄清楚这背后的原因。请帮忙。

  

线程“main”中的异常java.lang.NoClassDefFoundError:   组织/阿帕奇/火花/ 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)         在java.lang.Class.getMethod0(Class.java:3018)         在java.lang.Class.getMethod(Class.java:1784)         在org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain(SparkSubmit.scala:659)         在org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:180)         在org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:205)         在org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:120)         在org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)       引起:java.lang.ClassNotFoundException:org.apache.spark.sql.SchemaRDD         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)         ......还有10个

1 个答案:

答案 0 :(得分:1)

NoClassDefFoundError表示Java无法找到它正在寻找的类。这通常意味着:

  1. 您错误地定义了类路径。
  2. Java正在寻找并使用错误版本的jar(可能是因为Maven依赖地狱)。
  3. 1的解决方案是检查类路径:确保包含定义org.apache.spark.sql.SchemaRDD的jar。

    2的解决方案是检查您是否具有依赖于(传递上)定义该类的旧版本资源的Maven依赖项。