VSCode Jupyter报错No module named 'pyspark'及Spark Worker崩溃问题求助
VS Code Jupyter环境中PySpark报错的原因及解决方法
1. 内核未关联正确的Python环境
终端和JupyterLab能正常运行,说明你日常使用的Python环境已正确安装PySpark,但VS Code的Jupyter可能默认选用了未安装PySpark的虚拟环境或其他Python解释器。
- 解决:点击VS Code左下角的Python解释器选择器,切换到终端中使用的那个环境(可在终端输入
which python/where python查看路径,对应到VS Code的选项列表);同时在Jupyter Notebook右上角确认选中的内核属于该环境。
2. VS Code未加载系统环境变量
VS Code从图形界面直接启动时,可能无法读取你配置的Hadoop、Spark、Java环境变量,导致PySpark无法找到底层依赖。
- 解决:
- Windows用户:关闭VS Code后,从管理员命令提示符/PowerShell输入
code启动VS Code,确保环境变量被继承。 - Linux/macOS用户:从终端输入
code .启动VS Code,不要直接点桌面图标。 - 也可在VS Code的
settings.json中手动配置环境变量:
替换为实际路径,Windows用户将"terminal.integrated.env.linux": { "SPARK_HOME": "/your/spark/path", "HADOOP_HOME": "/your/hadoop/path", "JAVA_HOME": "/your/java/path", "PYTHONPATH": "${SPARK_HOME}/python:${SPARK_HOME}/python/lib/py4j-xxx-src.zip:${PYTHONPATH}" }linux改为windows。
- Windows用户:关闭VS Code后,从管理员命令提示符/PowerShell输入
3. PySpark与Python版本不兼容
更换内核后出现Python worker崩溃,大多是PySpark版本和当前Python内核版本不匹配导致。比如Spark 3.0及以下不支持Python 3.9+,Spark 3.2才开始稳定支持Python 3.10。
- 解决:用
pip show pyspark查看PySpark版本,核对当前Python内核版本,确保两者兼容。不兼容的话,要么调整Python版本,要么更换对应版本的PySpark。
4. Py4J依赖版本冲突
PySpark依赖Py4J实现Python与Java的交互,若你单独安装了Py4J,其版本和Spark自带的Py4J不一致,会引发worker崩溃。
- 解决:卸载单独安装的Py4J(
pip uninstall py4j),直接使用Spark自带的Py4J包(路径在${SPARK_HOME}/python/lib/下),并确保PYTHONPATH包含该路径。
内容的提问来源于stack exchange,提问作者Matheus
相关产品推荐
相关产品推荐

