首页 > 解决方案 > 与 show 方法或计数一起使用时,jupyter 单元执行挂起并引发异常

问题描述

我在 jupyter hub 上本地运行一些 pyspark 代码。我的系统 RAM 是 32 GB。每当我在某些操作(例如 join 或 union 或其他)之后使用 show() 或 count() 方法时,我的内核都会被挂起或死掉,或者有时它会抛出异常。但是如果没有 show() 或 count() 方法,代码可以正常工作。

我不知道是什么导致了这个问题。我正在处理的数据大小约为 1 GB。

对此的任何线索将不胜感激。

大多数时候错误将是:引起:java.lang.OutOfMemoryError:Java堆空间,但只有当我使用show()或count()时

  1. 另外,如果我使用下面的方法,那么它也会引发异常
m_f_1.limit(15).toPandas().head()

错误:root:发送命令时出现异常。回溯(最近一次通话最后):文件“/home/tzade/spark-2.3.2-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”,第 1159 行, 在 send_command raise Py4JNetworkError("Answer from Java side is empty") py4j.protocol.Py4JNetworkError: Answer from Java side is empty

在处理上述异常的过程中,又出现了一个异常:

回溯(最近一次通话):文件“/home/tzade/spark-2.3.2-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”,第 985 行,在 send_command response = connection.send_command(command) 文件“/home/tzade/spark-2.3.2-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py” ,第 1164 行,在 send_command “接收时出错”,e,proto.ERROR_ON_RECEIVE) py4j.protocol.Py4JNetworkError:接收时出错

标签: pysparkjupyter-notebookjupyter

解决方案


推荐阅读