Zeppelin java.lang.NoClassDefFoundError: Could not initialize class org.apache.spark.rdd.RDDOperationScope$
Zeppelin java.lang.NoClassDefFoundError: Could not initialize class org.apache.spark.rdd.RDDOperationScope$
当我运行代码
val home = "/Users/adremja/Documents/Kaggle/outbrain"
val documents_categories = sc.textFile(home + "/documents_categories.csv")
documents_categories take(10) foreach println
在 spark-shell 中完美运行
scala> val home = "/Users/adremja/Documents/Kaggle/outbrain"
home: String = /Users/adremja/Documents/Kaggle/outbrain
scala> val documents_categories = sc.textFile(home + "/documents_categories.csv")
documents_categories: org.apache.spark.rdd.RDD[String] = /Users/adremja/Documents/Kaggle/outbrain/documents_categories.csv MapPartitionsRDD[21] at textFile at <console>:26
scala> documents_categories take(10) foreach println
document_id,category_id,confidence_level
1595802,1611,0.92
1595802,1610,0.07
1524246,1807,0.92
1524246,1608,0.07
1617787,1807,0.92
1617787,1608,0.07
1615583,1305,0.92
1615583,1806,0.07
1615460,1613,0.540646372
然而,当我在 Zeppelin 中尝试 运行 时,出现错误
java.lang.NoClassDefFoundError: Could not initialize class org.apache.spark.rdd.RDDOperationScope$
at org.apache.spark.SparkContext.withScope(SparkContext.scala:679)
at org.apache.spark.SparkContext.textFile(SparkContext.scala:797)
... 46 elided
你知道问题出在哪里吗?
我有来自自制软件的 spark 2.0.1(我在 zeppelin-env.sh 中将其链接为 SPARK_HOME)和来自 Zeppelin 网站的 Zeppelin 0.6.2 二进制文件。
好的,看来我找到了解决方案。我从 zeppelin 的 lib 文件夹中删除了:
- jackson-annotations-2.5.0.jar
- jackson-core-2.5.3.jar
- jackson-databind-2.5.3.jar
并将其替换为 spark 使用的 2.6.5 版本。
它现在可以工作了,但我不知道我是否没有破坏任何其他东西。
似乎是 spark 版本的问题,zeppelin 0.6.2 支持 spark 1.6,而我们 运行 spark 支持 2.0 版本。所以罐子可能不兼容。
当我运行代码
val home = "/Users/adremja/Documents/Kaggle/outbrain"
val documents_categories = sc.textFile(home + "/documents_categories.csv")
documents_categories take(10) foreach println
在 spark-shell 中完美运行
scala> val home = "/Users/adremja/Documents/Kaggle/outbrain"
home: String = /Users/adremja/Documents/Kaggle/outbrain
scala> val documents_categories = sc.textFile(home + "/documents_categories.csv")
documents_categories: org.apache.spark.rdd.RDD[String] = /Users/adremja/Documents/Kaggle/outbrain/documents_categories.csv MapPartitionsRDD[21] at textFile at <console>:26
scala> documents_categories take(10) foreach println
document_id,category_id,confidence_level
1595802,1611,0.92
1595802,1610,0.07
1524246,1807,0.92
1524246,1608,0.07
1617787,1807,0.92
1617787,1608,0.07
1615583,1305,0.92
1615583,1806,0.07
1615460,1613,0.540646372
然而,当我在 Zeppelin 中尝试 运行 时,出现错误
java.lang.NoClassDefFoundError: Could not initialize class org.apache.spark.rdd.RDDOperationScope$
at org.apache.spark.SparkContext.withScope(SparkContext.scala:679)
at org.apache.spark.SparkContext.textFile(SparkContext.scala:797)
... 46 elided
你知道问题出在哪里吗?
我有来自自制软件的 spark 2.0.1(我在 zeppelin-env.sh 中将其链接为 SPARK_HOME)和来自 Zeppelin 网站的 Zeppelin 0.6.2 二进制文件。
好的,看来我找到了解决方案。我从 zeppelin 的 lib 文件夹中删除了:
- jackson-annotations-2.5.0.jar
- jackson-core-2.5.3.jar
- jackson-databind-2.5.3.jar
并将其替换为 spark 使用的 2.6.5 版本。
它现在可以工作了,但我不知道我是否没有破坏任何其他东西。
似乎是 spark 版本的问题,zeppelin 0.6.2 支持 spark 1.6,而我们 运行 spark 支持 2.0 版本。所以罐子可能不兼容。