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