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;
如何缓存临时文件 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;