SparkSQL 序列化缓存

SparkSQL serialized caching

Spark 核心支持原始存储和序列化 RDD 缓存。
这篇好文章explains这篇
如果您使用 persist - 您可以指定任何 levels of caching, but if you're use cache you may only use MEMORY_ONLY by default without serialization according this question.
有谁知道如何在 SparkSQL 中使用 MEMORY_ONLY_SER 缓存?
cacheTable(my_table) 将使用 MEMORY_ONLY 选项进行缓存,而不是 MEMORY_ONLY_SER,即使我在默认情况下在 spark 环境中有 spark.storage.StorageLevel=MEMORY_ONLY_SER。
我的目标是使用来自 SparkSQL 的序列化 table 缓存。有什么想法吗?

尝试以下操作:

Java:

Option<String> tableName = new Some<String>("MyTable");
hiveContext.cacheManager().cacheQuery(hiveContext.table(tableName.get()),  tableName, StorageLevel.MEMORY_ONLY_SER());

Scala:

...cacheQuery(sqlContext.table(tableName), Some(tableName), MEMORY_ONLY_SER)

Spark 1.3.0+ :
参见 1.3.1 branch code
请参见 1.5.1 branch code(使用 hiveContext.isCached(tableName) 验证)