Zeppelin %spark.pyspark解释器报错:SparkSession无_wrapped属性
解决Zeppelin %spark.pyspark解释器启动失败(AttributeError: 'SparkSession' object has no attribute '_wrapped')
问题核心
使用Zeppelin 0.10.1的%spark.pyspark解释器时启动失败,关键错误为:
AttributeError: 'SparkSession' object has no attribute '_wrapped'
报错对应引导脚本执行sqlc = __zSqlc__ = __zSpark__._wrapped行失败,且已确认外部环境中ipython和Spark 3.3.0的pyspark运行正常。
原因
Zeppelin 0.10.1的pyspark引导脚本依赖SparkSession的内部属性_wrapped,但该属性在Spark 3.3.0版本中已被移除或重构,导致版本兼容性冲突。
解决方案
方案1:升级Zeppelin版本
将Zeppelin升级至0.11.0及以上版本,这些版本官方已修复与Spark 3.x系列的适配问题,对Spark 3.3.0的兼容性做了专门验证。
方案2:手动修改引导脚本(临时适配)
若无法立即升级Zeppelin,可通过修改引导脚本解决:
- 找到Zeppelin安装目录下的
interpreter/spark/python/zeppelin_pyspark.py文件 - 定位到报错行(通常为第54行):
sqlc = __zSqlc__ = __zSpark__._wrapped - 替换为适配Spark 3.3.0的代码:
# Spark 3.x中SparkSession已集成SQLContext功能,直接适配获取 sqlc = __zSqlc__ = __zSpark__.sqlContext if hasattr(__zSpark__, 'sqlContext') else __zSpark__ - 保存文件后重启Zeppelin服务,重新测试
%spark.pyspark解释器。
验证
修改完成后,在Zeppelin中运行简单pyspark代码(如print(spark)),确认解释器正常启动且无报错。
内容的提问来源于stack exchange,提问作者Micror
相关产品推荐
相关产品推荐

