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

Force loading RDD from file to memory in Spark

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

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

RDD.cache() 本身并不能解决问题。缓存也是一种惰性操作。

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

如果没有,有没有办法加快 RDD 加载速度,and/or将其保存在内存中以供将来的 Spark 作业使用?

Spark版本为1.5,单机运行。该文件是从本地文件系统读取的。如果需要,我可以调整 Spark 的配置或这些设置。

调用 cache() 后,调用你的 rdd 上的任何 action(通常使用 count())到 "materialize" 缓存。对该 RDD 的进一步调用将使用缓存版本:

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