【问题标题】:Is UNCACHE table a lazy operation in Spark SQL?UNCACHE 表是 Spark SQL 中的惰性操作吗?
【发布时间】:2017-11-11 17:06:30
【问题描述】:

Apache Spark SQL 操作CACHE table 有一个选项,以便它运行惰性。 但是 UNCACHE 表呢? documentation 是否懒惰什么都不会说。表会立即从缓存中删除,还是会推迟到下一次垃圾收集运行?如果它是懒惰的,有没有办法找出我的表是否仍然缓存?

【问题讨论】:

  • 问题2,spark.catalog.listTables.show
  • 试一试并查看 Spark UI 中的“存储”选项卡
  • @RaphaelRoth 我更喜欢可以编码的解决方案。
  • @asmaier 你查到了这个:)

标签: apache-spark caching apache-spark-sql


【解决方案1】:

默认的 UNCACHE 操作是非阻塞的。如果您使用 DSL,您可以在数据帧/数据集上调用 df.unpersist(true) 以使操作阻塞。

【讨论】:

  • 所以CACHE和UNCACHE的API有些不一致,因为默认情况下CACHE是阻塞的。
  • 不是 100% 确定 CACHE 的 SparkSQL 实现,但在 DSL 中我观察到 cache() 操作表现为动作(立即工作)和表现为转换(立即返回并实际的缓存将在执行操作期间发生)。我没有深入研究源代码来确定导致行为差异的原因。可能是某些分区已加载的程度。
猜你喜欢
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多