Spark将工作数据集缓存到内存中,然后以内存速度执行计算。有没有办法控制工作集驻留在RAM中的时间?
我有大量通过作业访问的数据。最初将作业加载到RAM需要花费时间,当下一个作业到达时,它必须再次将所有数据加载到RAM,这非常耗时。有没有办法使用Spark将数据永久地(或指定的时间)缓存到RAM中?
答案 0 :(得分:9)
要明确解除隐身,您可以使用RDD.unpersist()
如果要跨多个作业共享缓存的RDD,可以尝试以下操作:
我一直在尝试使用Spark中的缓存选项。您可以在此处阅读更多内容:http://sujee.net/understanding-spark-caching/
答案 1 :(得分:0)
您可以为RDD指定缓存选项。 RDD.cache(MEMORY_ONLY)
当没有其他操作需要RDD时,Spark会自动清除。
没有选项可以在指定时间内缓存RDD。
请查看以下链接
http://spark.apache.org/docs/latest/programming-guide.html#which-storage-level-to-choose