SparkSession.catalog.clearCache() 可以从 hdfs 中删除数据吗?

Posted

技术标签:

【中文标题】SparkSession.catalog.clearCache() 可以从 hdfs 中删除数据吗?【英文标题】:Can SparkSession.catalog.clearCache() delete data from hdfs? 【发布时间】:2020-08-18 21:37:10 【问题描述】:

自从我们从 CDH 迁移到 HDP(spark 2.2 到 2.3)后,我遇到了一些数据删除问题。正在从 hdfs 位置读取表,并且在运行读取和处理这些表的 spark 作业一段时间后,它会抛出 table not found 异常,当我们检查该位置时,所有记录都消失了。在读取该表之前我看到的 spark(Java) 代码中,调用了 clearCache()。它可以删除那些文件吗?如果是,我该如何解决?

【问题讨论】:

clearCache 从内存缓存中删除所有缓存的表 spark.apache.org/docs/latest/api/java/org/apache/spark/sql/… 是的,我已经检查过了,但这是否意味着它会从 hdfs 中删除文件/表记录?我不明白从内存缓存中删除是什么意思。 @mazaneicha 【参考方案1】:

我想,你应该看看source code - Spark 有自己的缓存用户数据实现,并且在通过 CacheManager 管理此缓存时从不删除相同的数据。看看

【讨论】:

以上是关于SparkSession.catalog.clearCache() 可以从 hdfs 中删除数据吗?的主要内容,如果未能解决你的问题,请参考以下文章