DataBricks:在 Temp Table 上缓存 Select

DataBricks: Cache Select on Temp Table

如何缓存临时文件 table?

文档表明这是可能的:https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-cache.html

在 DBR 10.5 和 Spark 3.2.1 上考虑以下内容:

%python
df.createOrReplaceTempView("changeset");
CACHE SELECT * from changeset

CACHE supports only SELECT queries with optional WHERE clause, e.g. CACHE SELECT <columns> FROM <table> [ WHERE <predicate> ]

编辑

我发现如果您对数据做任何事情,例如:

spark.sql("select distinct * from table") # CACHE SELECT will fail
# instead of
spark.sql("select * from table") # CACHE SELECT will work

您尝试缓存 SELECT 将会失败。

因此,尽管文档名称中包含 latest,但还有其他文档显示查询的结构应该像这样(有效),而不是

CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;

https://docs.databricks.com/spark/latest/spark-sql/language-manual/sql-ref-syntax-aux-cache-cache-table.html