【发布时间】:2020-03-10 15:13:12
【问题描述】:
假设我做了这样的事情:
def readDataset: Dataset[Row] = ???
val ds1 = readDataset.cache();
val ds2 = ds1.withColumn("new", lit(1)).cache();
ds2 和 ds1 是否会共享列中除了 “new” 添加到 ds2 的所有数据?如果我缓存两个数据集,它会将整个数据集 ds 和 ds2 存储在内存中,还是共享数据只存储一次?
如果数据是共享的,那么当这个共享被破坏(所以相同的数据存储在两个内存位置)?
我知道数据集和 rdds 是不可变的,但我找不到明确的答案是否共享数据。
【问题讨论】:
标签: scala apache-spark dataset rdd