【发布时间】:2016-03-11 09:09:26
【问题描述】:
我尝试使用 cache() 将数据保存在内存中。 我设置了一些属性来确保有足够的内存来保存 rddA 和 rddB。 但不知何故 rddA 在应该制作的时候没有制作,而 myFunction 工作了 2 次。
def myFunction = println(".") // to check when It works
var rddA = myFuntion().cache()
var rddB = rddA.map({ do somethings}).cache() // I though rddA made in cache here
rddB.map({ real work }) // printed "."
...
...
rddA.map({ other works}) // printed "." again why??
【问题讨论】:
-
我建议您添加标签 spark 以更快地获得帮助
-
您的代码甚至无法编译 - 看起来您为示例过度简化了它...应该将
myFuntion().cache()更改为rdd.map(a => { myFunction(); a }).cache()??
标签: scala caching apache-spark rdd