PySpark测试代码执行失败:Connection reset错误求助
解决PySpark本地运行java.net.SocketException: Connection reset错误
运行基础PySpark测试代码验证本地环境时,反复遭遇java.net.SocketException: Connection reset错误,导致Stage 0.0的Task 0失败,作业最终终止,修改bin目录文件后问题仍未解决。
报错日志
默认日志级别设置为"WARN"。如需调整日志级别,请使用sc.setLogLevel(newLevel);对于SparkR,请使用setLogLevel(newLevel)。 24/11/05 11:22:16 ERROR Executor: 阶段0.0中的任务0.0(TID 0)执行异常:java.net.SocketException: Connection reset at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:318) ...(完整报错栈见原信息) 24/11/05 11:22:16 ERROR TaskSetManager: 阶段0.0中的任务0执行失败1次;终止作业 Traceback(最近的调用位于最前): 文件"C:\Users\student\Dropbox (Personal)\Codes\pyspark_test.py",第15行,在<module>中 df.show() ...(完整Python报错栈见原信息) 进程以退出码1结束
测试代码
import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("PySpark Test") \ .getOrCreate() data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)] columns =["Name", "Age"] df = spark.createDataFrame(data, columns) df.show() filtered_df = df.filter(df.Age > 30) filtered_df.show() spark.stop()
解决方案
- 检查Java版本兼容性:Spark 3.x要求Java 8或11,用
java -version查看本地版本,若不匹配则切换对应Java版本。 - 显式配置本地模式资源:修改SparkSession创建代码,指定本地模式及内存参数,避免资源不足或端口冲突:
spark = SparkSession.builder \ .appName("PySpark Test") \ .master("local[*]") # 使用所有可用核心,也可指定具体数量如local[2] .config("spark.driver.memory", "2g") # 根据机器配置调整内存 .getOrCreate()
- 排查防火墙/安全软件拦截:临时关闭本地防火墙、杀毒软件,确认是否是这类软件阻止了Spark进程间通信。
- 清理Spark临时文件:删除
%TEMP%(Windows)或/tmp(Linux/macOS)目录下所有以spark-开头的临时文件,再重新运行测试。 - 验证环境变量配置:检查
SPARK_HOME、JAVA_HOME是否正确设置并生效,重启终端后再执行代码。
内容的提问来源于stack exchange,提问作者Lobo
相关产品推荐
相关产品推荐

