【发布时间】:2020-12-18 16:14:15
【问题描述】:
我目前正在准备我作为数据工程师的工作面试。我陷入了困惑。 以下是详细信息。
如果 Spark RDD 本质上是不可变的,那么为什么我们能够使用 var 创建 spark RDD?
【问题讨论】:
-
RDD 是不可变的(这意味着您不能更改 RDD 的状态(即您不能在 RDD 中添加新记录或删除记录或更新记录。) .....“var” 只是持有“任何变量”的引用......如果你改变对不同对象的引用并不意味着你改变了 rdd 的状态,这意味着你改变了引用变量的状态。
-
如果是这种情况,那么假设我做了 var a= sc.parallelize(Seq("1","2","3")) ,然后如果我做了 a=a.map (_+" 是一个数字")。那么在这种情况下,如果我为 a 执行 foreach(println) 那么最新更改的 rdd 将会出现。但接下来我们将如何获取应用 map 函数之前的早期代码。 @kavetiraviteja
标签: scala apache-spark rdd