在Spark中强制将RDD从文件加载到内存

时间:2016-04-19 06:12:52

标签: apache-spark rdd

我有一个运行Spark计算的演示应用程序。为此,它加载存储在目标文件中的RDD,然后执行一些取决于用户输入的任务。

使用sparkContext.objectFile()加载RDD是一项冗长的操作。由于时间问题,我想在演示开始之前加载它,并且只在演示期间执行依赖于输入的计算。但是,Spark的惰性策略只会在触发整个计算后才读取文件。

RDD.cache()不是自己做的伎俩。缓存也是一种懒惰的操作。

有没有办法从文件强制加载RDD?

如果没有,有没有办法加速RDD加载,和/或将其保存在内存中以备将来的Spark工作?

Spark版本为1.5,它以单节点独立模式运行。该文件从本地文件系统中读取。如果需要,我可以调整Spark的配置或这些设置。

1 个答案:

答案 0 :(得分:1)

调用cache()后,在您的rdd上调用任何操作(通常使用count())来“实现”缓存。对此RDD的进一步调用将使用缓存版本:

RDD.cache().count() // this will load the RDD
// use RDD, it's cached now