2017-05-23 60 views
0

我有結構的火花代碼:是否對火花變量進行懶惰評估?

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() 

在許多更RDDS一些其它代碼(其他RDDS在本節和其它瓦爾斯緩存被評估)。

寫變量到磁盤(A,B,C,d,e和其他人)

我想知道,如果varibales在它們被定義或僅在寫入磁盤時的位置計算。我擔心如果僅在寫入磁盤時纔對它們進行評估,那麼我將同時緩存更多的RDD。

回答

1

是的。你是對的。在RDD所有transformationslazily evaluated直到action就像collect()save()

所做的一切transformation操作,如map()reduce()產生​​這是由當進行action跟蹤parent計劃進行。

您可以結帳JerryLeadJacekLaskowski瞭解更多詳情。我希望這有幫助