非常简单,我在一个17节点的集群上使用spark2.4.3,并且我有一个持久化的数据集。最后,在一些计算/操作之后,我使用unpersist(),但根据spark ui中的存储选项卡,数据集最终仍保留在内存中。即使我使用unpersist(true),数据集最终仍然存在。为什么会这样?
3htmauhk1#
修好了!最终问题出在代码中。我持久化了名为df的数据集,然后删除列或更改列的名称,并在相同的名称(df)上重新分配它。我想这意味着在我取消持久化的最后,只有新的数据集被取消持久化(尽管它从来没有被持久化)。我只是在“删除列等”之后保留了数据集并解决了问题。
1条答案
按热度按时间3htmauhk1#
修好了!最终问题出在代码中。我持久化了名为df的数据集,然后删除列或更改列的名称,并在相同的名称(df)上重新分配它。我想这意味着在我取消持久化的最后,只有新的数据集被取消持久化(尽管它从来没有被持久化)。我只是在“删除列等”之后保留了数据集并解决了问题。