【发布时间】:2022-10-15 03:41:12
【问题描述】:
我想知道我是否显式缓存查询,如下所示
CACHE SELECT * FROM boxes
然后运行另一个查询,如 SELECT C1 FROM 框,该查询是否能够使用相同的缓存。或者我们是否需要具有相同的查询构造才能使用磁盘缓存。此外,如果我们能够使用磁盘缓存,是否也有助于降低计算成本?
【问题讨论】:
标签: caching databricks delta-lake
我想知道我是否显式缓存查询,如下所示
CACHE SELECT * FROM boxes
然后运行另一个查询,如 SELECT C1 FROM 框,该查询是否能够使用相同的缓存。或者我们是否需要具有相同的查询构造才能使用磁盘缓存。此外,如果我们能够使用磁盘缓存,是否也有助于降低计算成本?
【问题讨论】:
标签: caching databricks delta-lake
缓存SELECT * 可能没有太多好处,但您可以将数据的子集/预处理部分缓存到另一个增量表。
boxes_df = spark.table("boxes")
smaller_df = boxes_df.filter(boxes_df.price > 20)
smaller_df.write.format("delta").saveAsTable("less_boxes")
然后您可以按如下方式查询子集:
SELECT * FROM less_boxes
这种模式可以根据具体情况降低计算成本。
【讨论】: