为什么spark job在使用pyspark shell时不能在zepplin上工作

xbp102n0  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(373)

我正试图在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时出现,我有zeppelin配置中的spark\u home。

8yparm6h

8yparm6h1#

我解决了这个问题,问题是齐柏林飞艇使用的是commons-lang3-3.5.jar,而spark使用的是commons-lang-2.6.jar,所以我所做的就是在解释器菜单上为齐柏林飞艇配置添加jar路径:
在导航栏中单击“解释器”菜单。
2单击要加载依赖项的解释器的“编辑”按钮。
3-根据您的需要填充工件并排除字段。将路径添加到相应的jar文件。
4-按“保存”重新启动已加载库的解释器。

p8ekf7hl

p8ekf7hl2#

齐柏林飞艇正在使用它的commons-lang2 jar来流式传输到spark执行器,而spark local正在使用common-lang3。就像achref提到的,只需填写commons-lang3的工件位置并重新启动解释器,就可以了。

相关问题