【问题标题】:Why unpersist() does not remove my path from the cache in pyspark in Azure Databricks?为什么 unpersist() 不会从 Azure Databricks 中 pyspark 的缓存中删除我的路径?
【发布时间】:2021-10-07 06:58:35
【问题描述】:

我正在读取特定路径的 csv 文件:

spark.read.format('csv').load('/mnt/path/')

我正在缓存我的数据框以访问损坏的记录enter link description here

data_frame.cache()

在我的笔记本末尾,我想使用data_frame.unpersist()从缓存中删除此路径

然后我正在更改底层数据,例如删除或添加新文件到表路径

但如果我再次读取 csv,spark.read.format('csv').load('/mnt/path/'),spark 没有最后的更改,它仍然显示缓存数据

这让我觉得数据框并不是真正未缓存的。

唯一可行的方法是重启集群。

我不想使用spark.catalog.clearCache(),因为这会影响缓存集群上运行的所有作业。我只想从当前笔记本中取消缓存特定的数据帧。

任何建议或意见将不胜感激。


编辑: 我没有将它分配给我的数据框。看起来有区别 data_frame = data_frame.unpersist()data_frame.unpersist()

【问题讨论】:

标签: caching pyspark databricks azure-databricks


【解决方案1】:

尝试将阻塞标志设置为 true,以便您的计算等到缓存数据真正被删除。

[ def unpersist(blocking: Boolean) ]
data_frame.unpersist(true)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多