0
我有個問題,當RDD
存儲在內存中時。 可以說,我有這樣的代碼:Spark中的RDD持久性
val dataset = originalDataset
.flatMap(data => modifyDatasetFormat(data, mappingsInMap))
.persist(StorageLevel.MEMORY_AND_DISK)
到目前爲止,我有存儲在每個工作節點的內存RDD
。
問題: 如果我對這個RDD
做了另一個轉換或操作,這個持久性會停止嗎?我應該創建另一個,還是與它沒有任何關係?
如果我在這個RDD
(e.x散列分區)中更改分區,這個持久性會停止存在,我應該創建另一個分區或者它沒有任何關係?
感謝
所以換句話說....爲創建我必須堅持它,並unpersist老one.Is是正確的每一個新的RDD? – Nick
我相信你的第2點是不正確的,當你調用rdd時,返回值是'this'引用,所以你的兩個例子實際上都是相同的。 –
可以說你有這個:val dataset2 = dataset1.persist(StorageLevel.MEMORY_AND_DISK) val dataset3 = dataset2.foreach(...)。如果您對數據集2進行了轉換,則必須將其保留並將其傳遞給數據集3。我對麼? – Nick