我的脚本 Pyspark 有一些问题,我从 3 周开始就试图解决这个问题。我真的不明白是什么导致了这个......
我的脚本的工作是:从两个文件中匹配一些地址,我可以看到工作已经完成,但是当他试图将结果写入 csv 文件时。我收到一些错误:
<块引用>引起:org.apache.spark.api.python.PythonException:回溯(最近一次调用最后一次):文件“C:\BigData\Spark\python\lib\pyspark.zip\pyspark\worker.py”,第 584 行,在主文件“C:\BigData\Spark\python\lib\pyspark.zip\pyspark\serializers.py”中,第 562 行,在 read_int length = stream.read(4) 文件“C:\ProgramData\Anaconda3 \lib\socket.py”,第 669 行,在 readinto 中返回 self._sock.recv_into(b) socket.timeout:超时
有什么解决办法吗?为了这 ? 我在本地运行 pyspark 内存:32go CPU:8 核, 2.4 非常感谢您的帮助
非常感谢
==更新==
我尝试了另一种解决方案,但仍然出现错误:'(
添加了这些参数:
<块引用>.config("spark.sql.broadcastTimeout", "72000")\
.config('spark.shuffle.service.enabled', 'TRUE') \
.config("spark.debug.maxToStringFields" , "100")\
.config("spark.executor.heartbeatInterval", "14400")\
引起:org.apache.spark.api.python.PythonException: Traceback (最近一次通话):文件 “C:\BigData\Spark\python\lib\pyspark.zip\pyspark\worker.py”,第 584 行, 在主文件中 "C:\BigData\Spark\python\lib\pyspark.zip\pyspark\serializers.py",行 第562话 length = stream.read(4) File "C:\ProgramData\Anaconda3\lib\socket.py", line 669, in readinto return self._sock.recv_into(b) socket.timeout:超时
===更新===
我已经放置了日志文件,当程序中断时,它给出了这个:
<块引用>信息 2021-03-30 09:22:33,586 java_gateway: 1210 send_command
接收时出错。回溯(最近一次通话):文件
"C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1200 行,在 send_command 中
answer = smart_decode(self.stream.readline()[:-1]) File "C:\ProgramData\Anaconda3\lib\socket.py", line 669, in readinto
return self._sock.recv_into(b) ConnectionResetError: [WinError 10054] 一个现有的连接被远程主机强行关闭
错误 2021-03-30 09:22:33,630 java_gateway: 1050 send_command
发送命令时出现异常。回溯(最近一次调用最后一次):
文件
"C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1200 行,在 send_command 中
answer = smart_decode(self.stream.readline()[:-1]) File "C:\ProgramData\Anaconda3\lib\socket.py", line 669, in readinto
return self._sock.recv_into(b) ConnectionResetError: [WinError 10054] 远程主机强行关闭现有连接
在处理上述异常的过程中,又发生了一个异常:
回溯(最近一次调用最后一次):文件
"C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1033 行,在 send_command 中
response = connection.send_command(command) File "C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1211 行,在 send_command 中
引发 Py4JNetworkError(py4j.protocol.Py4JNetworkError:接收信息时出错 2021-03-30 09:22:33,688 java_gateway: 1195
send_command 发送时出错。回溯(最近一次调用最后一次):
文件
"C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1193 行,在 send_command 中
self.socket.sendall(command.encode("utf-8")) ConnectionResetError: [WinError 10054] 现有连接被强制关闭
远程主机信息 2021-03-30 09:22:33,689 java_gateway: 1047
send_command 发送命令时出现异常。追溯(最近
最后调用):文件
"C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py",
第 1193 行,在 send_command 中
self.socket.sendall(command.encode("utf-8")) ConnectionResetError: [WinError 10054] 现有连接被强制关闭
远程主机
在处理上述异常的过程中,又发生了一个异常:
回溯(最近一次调用最后一次):文件 "C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py", 第 1033 行,在 send_command 中 response = connection.send_command(command) File "C:\BigData\Spark\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py", 第 1196 行,在 send_command 中 引发 Py4JNetworkError(py4j.protocol.Py4JNetworkError:发送时出错