强制将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
我有一个运行 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