PySpark使Py4J无法连接到服务器127.0.0.1:xxxxx; Py4JNetworkError

问题描述

我在使用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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...