配置Spark至Jupyter Notebook后代码运行无响应,求解决方案
问题分析与解决方案
从你的配置步骤和代码表现来看,核心问题集中在Windows环境与Linux路径配置冲突、Hadoop依赖缺失这两点,以下是针对性的解决步骤:
1. 修正SPARK_HOME路径配置
你在bashrc.sh中设置的export SPARK_HOME=/opt/spark是Linux/WSL下的路径,但你是在Windows本地的Anaconda环境中运行PySpark,两者环境完全独立,这个配置对Windows本地的Jupyter无效。
- 打开Windows「系统属性-环境变量」,确认
SPARK_HOME指向你在Windows本地解压的Spark文件夹(比如C:\spark-3.5.0-bin-hadoop3),而非Linux路径。 - 无需修改WSL的
bashrc.sh,直接在Windows环境变量中配置即可,配置完成后必须重启Anaconda Prompt和Jupyter Notebook,确保环境变量生效。
2. 补全Windows下Hadoop依赖
Spark在Windows运行依赖winutils.exe,如果你的HADOOP_HOME目录下没有这个文件,会导致Spark初始化缓慢甚至卡死:
- 下载对应Hadoop版本的
winutils.exe(需匹配你Spark配套的Hadoop版本),放到HADOOP_HOME\bin目录下。 - 确认
HADOOP_HOME环境变量指向包含bin/winutils.exe的文件夹,同时将%HADOOP_HOME%\bin添加到系统Path中。
3. 优化SparkSession初始化与文件路径
在代码中显式指定Spark运行模式为本地模式,避免默认逻辑尝试连接集群;同时优化文件路径写法:
from pyspark.sql import SparkSession from pyspark.sql.functions import input_file_name # 显式指定local模式,使用所有可用核心 spark = SparkSession.builder \ .appName("SampleDataExample") \ .master("local[*]") \ .getOrCreate() # 使用原始字符串避免转义问题 folder_path = r"C:\Users\ryan_\Desktop\Coding\Python\CSV Merge All Files into One File\multiple_text_files\*.txt" df = spark.read.text(folder_path).withColumn("filename", input_file_name()) df.show()
4. 验证环境配置
在Anaconda Prompt中执行以下命令,确认环境变量加载正确:
echo %SPARK_HOME% echo %HADOOP_HOME% pyspark --version
如果能正常输出Spark版本信息,说明环境配置已生效。
内容的提问来源于stack exchange,提问作者ASH
相关产品推荐
相关产品推荐

