如何在apache spark中缓存数据,可以被其他spark工作使用

时间:2015-07-27 07:53:44

标签: scala apache-spark spark-jobserver

我有一个简单的火花代码,我使用SparkContext.textFile()读取文件,然后对该数据执行一些操作,我使用spark-jobserver来获取输出。 在代码中我缓存数据但是在作业结束后我再次执行spark-job然后它没有采用缓存中已存在的相同文件。因此,每次加载文件都需要花费更多时间。

示例代码如下:

val sc=new SparkContext("local","test")
val data=sc.textFile("path/to/file.txt").cache()
val lines=data.count()
println(lines)

在这里,如果我正在读同一个文件,那么当我第二次执行它时,它应该从缓存中获取数据,但它不会从缓存中获取数据。

有什么办法可以在多个火花作业中共享缓存数据吗?

1 个答案:

答案 0 :(得分:1)

是 - 通过在您获得的RDD上调用persist / cache并在相同的上下文中提交其他作业