如何避免 Spark/Pyspark 中的多个数据帧编辑和循环发生内存泄漏?

问题描述 投票:0回答:0

我觉得有两种情况会导致内存泄漏,我很难知道如何避免。

场景一:

需要对一个 df 进行多次编辑,如下所示:

df = method1()
df = method2(df)
df = method3(df)

如果我没记错的话,这种方法是不鼓励的,因为每个 df 都在加长内存占用。你如何解决这个问题?

场景二:

需要在pyspark中执行循环。例如,假设我有 400 个文件需要执行转换,我一次循环 10 个 --> 读入 10 个文件,转换数据,写回文件……再次循环。感觉这也是造成内存泄漏的原因。

我们是否应该在两种情况下都持久化数据?我们如何防止记忆积累?有没有办法刷新/杀死火花上下文但保持循环以便强制释放任何内存使用?

python apache-spark pyspark memory-management memory-leaks
© www.soinside.com 2019 - 2024. All rights reserved.