如何从pyspark删除数据帧以管理内存?

时间:2018-10-30 20:59:42

标签: python apache-spark memory pyspark

我列出了我的数据框以删除未使用的数据框。首先,我使用下面的函数列出了我从其中一篇文章中找到的数据框

from pyspark.sql import DataFrame

def list_dataframes():

    return [k for (k, v) in globals().items() if isinstance(v, DataFrame)] 

然后,我尝试从列表中删除未使用的那些。我在下面使用的代码

df2.unpersist()

当我再次列出df2时仍然存在。如何删除数据帧以在pyspark上保留一些内存?或您还有其他建议吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

如果您使用的是最新版本或更旧的Spark,则可以使用df.unpersist()来实现相同功能,但是较旧版本存在一个错误,该错误已在Spark的最新版本(2.3.2)中修复,该错误不会更新存储内存统计信息可以正常工作,但不会更新统计信息,因此我要求您在最新的火花上运行它以查看统计信息差异

请参阅下面的链接以了解更多有关此的信息

unpersist() issue

ReleaseNote for 2.3.2

如果有用,请批准答案。