spark是一款优秀的框架,计算性能相当优异,已经发展成大数据主流计算引擎,在spark开发过程中有很多优化的点。其中去除重复计算是非常重要的。一般操作调用cache/persist,来缓存中间结果,避免重复计算。其中cache是persist的一个特列(cache相当于persist())。persist拥以下几个级别的缓存:
NONE 默认配置(不缓存) DISK_ONLY 数据缓存到磁盘,特点读写特别慢,内存占用比较少 DISK_ONLY_2 数据缓存到磁盘两份,特点读写比较慢(比DISK_ONLY读写快,稳定性好) MEMORY_ONLY 数据缓存到内存和cache()功能之一,读写最快但是内存消耗比较大 MEMORY_ONLY_2 数据缓