我下载的Apache Zeppelin和Apache Spark版本分别为:0.6.0-incubating-SNAPSHOT和1.5.2,在Zeppelin中使用SQLContext读取Json文件创建DataFrame的过程中出现了以下的异常:
运行第一句代码就出现了异常。分析了一些,原来Apache Zeppelin 0.6.0-incubating-SNAPSHOT版本依赖的Jackson 相关文件版本为:2.5.x(参考里面的README.md文件),如下:
(Apache 2.0) Jackson (com.fasterxml.jackson.core:jackson-core:2.5.3 - https://github.com/FasterXML/jackson-core) (Apache 2.0) Jackson (com.fasterxml.jackson.core:jackson-annotations:2.5.0 - https://github.com/FasterXML/jackson-core) (Apache 2.0) Jackson (com.fasterxml.jackson.core:jackson-databind:2.5.3 - https://github.com/FasterXML/jackson-core)
而Apache Spark 1.5.2依赖的Jackson 相关文件版本为2.4.4(参考Spark的pom.xml文件):
<fasterxml.jackson.version>2.4.4</fasterxml.jackson.version>
而jsonFile函数在解析的时候用到了上面相关的类,导致了冲突。Apache Zeppelin在启动的时候会加载${ZEPPELIN_HOME}/lib下面的类库,而里面就有jackson相关的jar文件:
-rw-r--r-- 1 iteblog iteblog 39815 Jan 20 16:35 jackson-annotations-2.5.0.jar -rw-r--r-- 1 iteblog iteblog 229998 Jan 20 16:35 jackson-core-2.5.3.jar -rw-r--r-- 1 iteblog iteblog 1143162 Jan 20 16:35 jackson-databind-2.5.3.jar
问题就处在这了,所以我们可以将上面三个jar文件全部替换成2.4.4版本的:
-rw-r--r-- 1 iteblog iteblog 38597 Nov 25 2014 jackson-annotations-2.4.4.jar -rw-r--r-- 1 iteblog iteblog 225302 Nov 25 2014 jackson-core-2.4.4.jar -rw-r--r-- 1 iteblog iteblog 1076926 Nov 25 2014 jackson-databind-2.4.4.jar
然后重启zeppelin,再运行上面的语句,问题不再出现了。本来我想在pom.xml文件里面直接修改jackson的版本,然后再重新编译,但是搜遍了里面的pom.xml文件也没找到上面三个jar。
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Apache Zeppelin & Spark 解析Json异常】(https://www.iteblog.com/archives/1570.html)


Could not initialize class org.apache.spark.rdd.RDDOperationScope
这个问题也是这个原因造成的,。。。
感谢补充