Spark将工作数据集缓存在内存中,然后以内存速度执行计算。是否有一种方法来控制工作集在RAM中停留的时间?
我有大量通过作业访问的数据。将作业初始加载到RAM需要时间,当下一个作业到达时,它必须再次将所有数据加载到RAM中,这需要时间。是否有一种使用Spark将数据永久(或指定时间)缓存在RAM中的方法?
Spark将工作数据集缓存在内存中,然后以内存速度执行计算。是否有一种方法来控制工作集在RAM中停留的时间?
我有大量通过作业访问的数据。将作业初始加载到RAM需要时间,当下一个作业到达时,它必须再次将所有数据加载到RAM中,这需要时间。是否有一种使用Spark将数据永久(或指定时间)缓存在RAM中的方法?
如果要显式取消缓存,可以使用RDD.unpersist()
如果您想在多个作业之间共享缓存的RDD,则可以尝试以下操作:
我一直在尝试使用Spark中的缓存选项。您可以在此处阅读更多信息:http://sujee.net/understanding-spark-caching/
您可以为RDD指定缓存选项。RDD.cache(MEMORY_ONLY)
当没有其他操作需要该RDD时,Spark会自动清除缓存。
没有选项可以将RDD缓存指定时间。
请查看下面的链接。
http://spark.apache.org/docs/latest/programming-guide.html#which-storage-level-to-choose