Apache spark 在Spark中将RDD从文件强制加载到内存
我有一个运行Spark计算的演示应用程序。为此,它加载存储在对象文件中的RDD,然后根据用户的输入执行一些任务 使用Apache spark 在Spark中将RDD从文件强制加载到内存,apache-spark,rdd,Apache Spark,Rdd,我有一个运行Spark计算的演示应用程序。为此,它加载存储在对象文件中的RDD,然后根据用户的输入执行一些任务 使用sparkContext.objectFile()加载RDD是一个漫长的操作。由于时间是一个问题,我希望在演示开始之前加载它,并且只在演示过程中执行依赖于输入的计算。但是,Spark的延迟策略导致仅在触发整个计算后读取文件 RDD.cache()。缓存也是一种惰性操作 有没有办法强制从文件加载RDD 如果没有,有没有办法加速RDD加载,和/或将其保存在内存中以备将来的Spark作业
sparkContext.objectFile()
加载RDD是一个漫长的操作。由于时间是一个问题,我希望在演示开始之前加载它,并且只在演示过程中执行依赖于输入的计算。但是,Spark的延迟策略导致仅在触发整个计算后读取文件
RDD.cache()。缓存也是一种惰性操作
有没有办法强制从文件加载RDD
如果没有,有没有办法加速RDD加载,和/或将其保存在内存中以备将来的Spark作业使用
Spark版本为1.5,在单节点独立模式下运行。该文件是从本地文件系统读取的。如果需要,我可以调整Spark的配置或这些设置。调用缓存()
后,调用rdd上的任何操作(通常使用计数()
)来“具体化”缓存。对该RDD的进一步调用将使用缓存版本:
RDD.cache().count() // this will load the RDD
// use RDD, it's cached now
似乎不像广告宣传的那样有效。RDD分区是否可能从内存中退出,或者没有完全加载?只有在内存不足的情况下。。你…吗?您可以在Spark UI(https://:4040/storage/)中检查这一点,查找RDD并检查其“分数缓存”是否正常工作,尽管它对Spark的内存管理参数非常敏感