问题描述
我在使用PySpark时遇到以下错误:
Py4JNetworkError: An error occurred while trying to connect to the Java server (127.0.0.1:50854)
当出现问题时,SparkSession似乎完全破坏了Py4j服务器连接。
例如dfp = dfs.toPandas()
将触发错误; dfs拥有超过1000万条记录,因此我不建议使用toPandas()
这样大的记录集,但是能够做到这一点将是一件很不错的事情!
编辑:即使df.limit(100).toPandas()
也会断开连接。
udf_func = psf.udf (lambda x: x[0] - x[1])
dfs.withColumn('new_col',udf_func (psf.col('col1'),psf.col('col2'))).collect()
请注意,我可以通过调用dfp.apply(func,axis = 1)
在Pandas上运行它。
我发现唯一可行的解决方案是重新启动Python内核,但是每次必须从头开始运行我的代码确实让我感到烦恼。如果有人可以帮助我了解这里的情况,我将不胜感激。
作为参考,这是我的构造:
spark = SparkSession.builder \
.master("local[*]") \
.appName('data_process') \
.getorCreate()
我还尝试通过以下方式配置会话:
.config("spark.ui.port",port) \
.config("spark.port.maxRetries",999999) \
.config("spark.sql.execution.arrow.enabled","true") \
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)