为什么火花工作在使用pyspark shell时在zeppelin工作时不起作用

问题描述 投票:0回答:2

我正在尝试在zeppelin上执行以下代码

df = spark.read.csv('/path/to/csv')
df.show(3)

但我得到以下错误

Py4JJavaError: An error occurred while calling o786.collectToPython. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 5 in stage 39.0 failed 4 times, most recent failure: Lost task 5.3 in stage 39.0 (TID 326, 172.16.23.92, executor 0): java.io.InvalidClassException: org.apache.commons.lang3.time.FastDateParser; local class incompatible: stream classdesc serialVersionUID = 2, local class serialVersionUID = 3

我在2节点集群上运行hadoop-2.7.3并在独立模式和zeppelin 0.8.1上运行spark 2.3.2,这个问题只发生在使用zepplin并且我在zeppelin配置中有SPARK_HOME时。

apache-spark hadoop pyspark apache-zeppelin
2个回答
0
投票

我解决了它,问题是zeppelin正在使用commons-lang3-3.5.jar和spark使用commons-lang-2.6.jar所以我所做的就是在解释器菜单上添加jar路径到zeppelin配置:

1单击导航栏中的“解释器”菜单。

2,单击要加载依赖项的解释器的“编辑”按钮。

3填充工件并根据您的需要排除字段。将路径添加到相应的jar文件中。

4 - 按“保存”以使用加载的库重新启动解释器。


0
投票

Zeppelin使用其commons-lang2 jar流式传输到Spark执行器,而Spark本地使用common-lang3。就像Achref提到的那样,只需填写commons-lang3的神器位置并重新启动解释器,那么你应该很好。

© www.soinside.com 2019 - 2024. All rights reserved.