首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark和非持久化catalog.clearCache

Spark和非持久化catalog.clearCache
EN

Stack Overflow用户
提问于 2020-11-21 00:03:42
回答 1查看 421关注 0票数 2

我是spark的新手,正在寻找一个完全清除缓存的选项。深入研究后,我发现我有两个选择

代码语言:javascript
运行
复制
SparkInstance.catalog().clearCache(); // removes all the tables from the in-memory cache

另一方面,我也可以这样做

代码语言:javascript
运行
复制
persistentRDDs.forEach((k,v) -> {
   v.unpersist(); // will unpersist all the RDD's
});

现在,我试图找到并理解的是,哪一个会是更好的选择,为什么?我相信取消持久化RDD还会从catalog()包含的内存中删除所有数据。如果我说错了,请纠正我

EN

回答 1

Stack Overflow用户

发布于 2020-11-21 19:00:30

如果使用函数createOrReplaceTempView将数据帧转换为表/视图,则可以使用缓存表来缓存该表。代码如下:

Df.createOrReplaceTempview(“测试”)spark.catalog.cacheTable(“测试”)

如果您想缓存数据帧本身,那么可以使用df.cache()或df.persist()。对于持久化方法,您可以根据您希望缓存数据帧的方式来传递参数。

如果你想取消缓存一个数据帧,你可以使用df.unpersist(),但是如果你想取消缓存你创建的临时表,你可以使用spark.catalog.uncacheTable("test"),如果你想取消缓存所有的临时表,那么你可以使用spark.catalog.clearcache()。

您也可以在这里查看answer以获取参考:Temp table caching with spark-sql

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64932787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档