CACHE TABLE
适用于: Databricks Runtime
在 Apache Spark 缓存中使用给定的存储级别来缓存表的内容或查询的输出。 如果缓存了某个查询,则会为此查询创建临时视图。 这样就会减少未来查询中对原始文件的扫描。
语法
CACHE [ LAZY ] TABLE table_name
[ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]
请参阅磁盘缓存与Spark 缓存,了解磁盘缓存和 Apache Spark 缓存之间的差异。
参数
LAZY
只在首次使用表时才对表进行缓存,而不是立即缓存。
-
标识要缓存的 Delta 表或视图。 名称不得包含时态规范。 如果找不到表,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
OPTIONS ( ‘storageLevel’ [ = ] value )
具有
storageLevel
键值对的OPTIONS
子句。 使用storageLevel
以外的键时,将会发出警告。storageLevel
的有效选项是:NONE
DISK_ONLY
DISK_ONLY_2
MEMORY_ONLY
MEMORY_ONLY_2
MEMORY_ONLY_SER
MEMORY_ONLY_SER_2
MEMORY_AND_DISK
MEMORY_AND_DISK_2
MEMORY_AND_DISK_SER
MEMORY_AND_DISK_SER_2
OFF_HEAP
在为
storageLevel
设置了无效值时,会引发异常。 如果未使用OPTIONS
子句显式设置storageLevel
,则会将默认storageLevel
设置为MEMORY_AND_DISK
。查询
生成要缓存的行的查询。 可以采用以下格式之一:
SELECT
语句TABLE
语句FROM
语句
示例
> CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;