4.4.4 Spark SQL在内存计算中的应用
Spark SQL可以通过cacheTable将数据存储转换为列式存储,同时将数据加载到内存进行缓存。cacheTable相当于分布式集群的内存物化视图,将数据进行缓存,这样迭代的或者交互式的查询不用再从HDFS读数据,直接从内存读取数据大大减少了I/O开销。并且由于cacheTable是数据类型相同的数据连续存储,能够利用序列化和压缩减少内存空间的占用。
Spark SQL的cache可以使用两种方法来实现:CacheTable()方法和CACHE TABLE命令。
千万不要先使用cache SchemaRDD,然后registerAsTable;使用RDD的cache()将使用原生态的cache,而不是针对SQL优化后的内存列存储。
第一步 对rddTable表进行缓存。
在监控界面上可以看到该表数据已经缓存。(https://www.daowen.com)
第二步 对parquetTable表进行缓存。
在监控界面上可以看到该表数据已经缓存。
第三步 解除缓存。