簡體   English   中英

Spark catalog.clearCache 和非持久化 RDD

[英]Spark catalog.clearCache and unpersisting RDD's

我是 spark 新手,正在尋找完全清除緩存的選項。 在挖掘更多我發現我有兩個選擇

SparkInstance.catalog().clearCache(); // removes all the tables from the in-memory cache

另一方面,我也可以這樣做

persistentRDDs.forEach((k,v) -> {
   v.unpersist(); // will unpersist all the RDD's
});

現在我試圖找到和理解的是哪個是更好的選擇,為什么? 我相信非持久化的 RDD 也會從 catalog() 包含的內存中刪除所有數據。 如果我錯了,請糾正我

如果您使用函數 createOrReplaceTempView 將數據幀轉換為表/視圖,那么您可以使用緩存表來緩存該表。 代碼如下:

df.createOrReplaceTempview("test") spark.catalog.cacheTable("test")

如果要緩存數據幀本身,則可以使用 df.cache() 或 df.persist()。 對於持久方法,您可以根據您希望如何緩存數據幀來傳遞參數。

如果您想取消緩存數據幀,您可以使用 df.unpersist() 但如果您想取消緩存您創建的臨時表,您可以使用 spark.catalog.uncacheTable("test") 並且如果您想取消緩存所有臨時表你已經緩存然后你可以使用spark.catalog.clearcache()。

您也可以在此處查看答案以獲取參考: 使用 spark-sql 緩存臨時表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM