对于某些工作负载,可以在通过在内存中缓存数据或者打开一些实验选项来提高性能。
在内存中缓存数据
Spark SQL可以通过调用sqlContext.cacheTable("tableName")方法来缓存使用柱状格式的表。然后,Spark将会仅仅浏览需要的列并且自动地压缩数据以减少内存的使用以及垃圾回收的压力。你可以通过调用sqlContext.uncacheTable("tableName")方法在内存中删除表。
注意,如果你调用schemaRDD.cache()而不是sqlContext.cacheTable(...),表将不会用柱状格式来缓存。在这种情况下,sqlContext.cacheTable(...)是强烈推荐的用法。
可以在SQLContext上使用setConf方法或者在用SQL时运行SET key=value命令来配置内存缓存。