何时以及如何从 spark 中的缓存中删除 DataFrame?

When and how to remove DataFrame from cache in spark?

刚刚学习 spark,我想知道我是否应该在 spark 脚本期间执行运行 DF 的代码后清理数据帧?

例如,

# Do something on friends DF...
friendsByAge = lines.select("age", "friends")
friendsByAge.groupBy("age").avg("friends").show()

# now do something unrelated to friends DF

在上述情况下,friendsByAge DF 是否在整个驱动程序脚本执行期间(即使在我不再需要它之后)保存在内存中,如果需要,我应该以某种方式清理它,还是一旦我 show 它就从内存中删除了?

DataFrame 正在延迟加载,因此它仅在您 运行 操作 show 时加载。此外,它不会自动缓存(仅当您显式 cachepersist 时),因此您无需担心清理它。如果你确实缓存了一个名为 df 的 DataFrame,你可以使用以下方法将其从缓存中删除:

df.unpersist()