我对RDD在Spark中的作用域感到困惑。

根据this thread



因此,例如,如果我定义了一个带有在其中创建的新rdd的函数(例如,python代码)

# there is an rdd called "otherRdd" outside the function

def myFun(args):
    ...
    newRdd = otherRdd.map(some_function)
    newRdd.persist()
    ...
newRdd是否将存在于全局 namespace 中?还是仅在myFun环境内可见?

如果仅在myFun环境内可见,则在myFun完成执行后,Spark会自动将unpersist变成newRdd吗?

最佳答案

是的,当RDD被垃圾收集时,它是持久的。因此,在myFun之外,newRdd是不持久的(假设您不返回它也不是派生的rdd),则还可以检查此answer

关于python - Spark的 `persist`或 `cache`的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38292621/

10-10 14:39