Scala spark变量是否被延迟评估?
我有一个结构的火花代码:Scala spark变量是否被延迟评估?,scala,apache-spark,Scala,Apache Spark,我有一个结构的火花代码: val a:RDD = readData.someOperations() a.cache() val b = a.someOperations1() val c = a.someOperations2() val d = a.someOperations3() val e = a.someOperations4() a.unpersist() 更多RDD中的一些其他代码(其他RDD缓存在本节中,其他VAL进行计算) 将变量写入磁盘(a、b、c、d、e和其他) 我想知
val a:RDD = readData.someOperations()
a.cache()
val b = a.someOperations1()
val c = a.someOperations2()
val d = a.someOperations3()
val e = a.someOperations4()
a.unpersist()
更多RDD中的一些其他代码(其他RDD缓存在本节中,其他VAL进行计算)
将变量写入磁盘(a、b、c、d、e和其他)
我想知道变量包是在定义的位置计算的,还是仅在写入磁盘时计算的。我担心,如果只在写入磁盘时对它们进行评估,那么我将同时缓存更多的RDD。是的。你说得对。
RDD
上的所有转换
都是惰性评估的
,直到执行操作
,如collect()
save()
等
所有转换
操作,如map()
reduce()
生成物理和逻辑执行计划
,在执行操作
时,通过跟踪父项
计划来执行
您可以结帐并查看更多详细信息
我希望这是有帮助的