我正在尝试在zepplin上执行以下代码
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
我有hadoop-2.7.3在2个节点集群上运行,而spark 2.3.2在独立模式和zeppelin 0.8.1上运行,仅在使用zepplin时会出现此问题 而且我的SPARK_HOME是齐柏林飞艇的配置。
答案 0 :(得分:0)
我解决了这个问题,问题是齐柏林飞艇使用的是commons-lang3-3.5.jar,而spark是使用commons-lang-2.6.jar的,所以我要做的就是在解释器菜单上将jar路径添加到齐柏林飞艇配置中:
1-单击导航栏中的“解释器”菜单。
2-单击要将依赖项加载到的解释器的“编辑”按钮。
3-填充工件,并根据需要排除字段。将路径添加到相应的jar文件中。
4-按“保存”以使用已加载的库重新启动解释器。
答案 1 :(得分:0)
Zeppelin正在使用其commons-lang2 jar流式传输到Spark执行者,而Spark local正在使用common-lang3。就像Achref提到的那样,只需填写commons-lang3的工件位置并重新启动解释器,那么您应该会很好。