如果Source 或者 Transform 指定 cached 为 true,则 storage_level 默认为 MOMERY_ONLY。即全部放入内存,开发者应评估数据集是否能全部放入内存。否则应该考虑 Storage_level 为其它选项。该特性可用于 Spark SQL Flow 的优化手段。
Storage_level 和 Spark RDD/DataFrame 的 Persist 方法传入的参数是一致的。可选的几个值如下:
- MOMERY_ONLY:缓存到内存 (cached 为 true 时默认为MOMERY_ONLY);
- DIST_ONLY:缓存到本地磁盘;
- MEMORY_AND_DISK:优先使用 MEMORY,如果 MEMORY 无法完全放入,则写入磁盘;
- MEMORY_AND_DISK_SER:优先使用 MEMORY,如果 MEMORY 无法完全放入,则写入磁盘。内存和磁盘上的数据采用序列化且压缩;