磁盘缓存,用于实现常见和标准用户查询的模式



我想知道我是否将查询显式缓存为

CACHE SELECT * FROM boxes

并且稍后运行另一个查询,如SELECT C1 FROM框,该查询是否能够使用相同的缓存。或者我们需要使用相同的查询结构来使用磁盘缓存。此外,如果我们能够使用磁盘缓存,它是否也有助于降低计算成本?

缓存SELECT *可能没有太大好处,但您可以将数据的子集/预处理部分缓存到另一个Delta表中。

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

这种模式可以根据具体情况降低计算成本。

最新更新