答:cache可以接其他算子,但是接了算子之后,起不到缓存应有的效果,因为会重新触发cache。 cache不是action操作 2.reduceByKey是不是action? 答:不是,很多人都会以为是action,reduce rdd是action 3.数据本地性是在哪个环节确定的? 具体的task运行在那他机器上,dag划分stage的时候确定的 4.RDD的弹性表现在哪几点?
1. cache 和 persist 都是懒执行,必须有一个 action 类算子触发执行。 2. cache 和 persist 算子的返回值可以赋值给一个变量,在其他 job 中直接使用这个变量就是使用持久化的数据了。持久化的单位是partition。 3. cache 和 persist 算子后不能立即紧跟 action 算子。 4. cache 和 persist 算子持久化的数据...
1)cache只有一个默认的缓存级别MEMORY_ONLY ,cache调用了persist,而persist可以根据情况设置其它的缓存级别; 2)executor执行的时候,默认60%做cache,40%做task操作,persist是最根本的函数,最底层的函数。 40、 cache后面能不能接其他算子,它是不是action操作? cache可以接其他算子,但是接了算子之后,起不到缓存应有的...
cache其实就是persist(MEMORY_ONLY), 没什么好说的,一般缓存用这个就好了... checkpoint这严格来说不算是一个算子, 不过这也是一种持久化的手段, 其特点就是不会因为程序的结束而终止, 需要人为的控制其生命周期, 一般都是用在流式处理当中, 这里稍微提一下,不做过多解释了。
百度试题 题目spark中cache算子是()的算子 A. 延迟执行 B. 立即执行 C. 等待执行 D. 陈列执行 相关知识点: 试题来源: 解析 A.延迟执行 反馈 收藏
答:map:用于遍历RDD,将函数应用于每一个元素,返回新的RDD(transformation算子) foreach:用于遍历RDD,将函数应用于每一个元素,无返回值(action算子) mapPatitions:用于遍历操作RDD中的每一个分区,返回生成一个新的RDD(transformation算子) foreachPatition:用于遍历操作RDD中的每一个分区,无返回值(action算子) ...
Spark RDD Cache算子的作用 我们经常会对RDD执行一系列Transformation算子操作,逻辑上每经历一次变换,就会将RDD转换为一个新的RDD,RDD会被划分成很多的分区分布到集群的多个节点中。 分区是逻辑概念,为了防止函数式数据不可变行(immutable)导致的内存需求无限扩张,使得系统内存被快速用完,Spark使用延迟执行(lazy)的方式...
Spark RDD通过转换(Transactions)算子,形成了血缘关系图DAG,最后通过行动(Action)算子,触发Job并调度执行。 DAGScheduler负责Stage级的调度,主要是将DAG切分成若干Stages,并将每个Stage打包成TaskSet交给TaskScheduler调度。 TaskScheduler负责Task级的调度,将DAGScheduler给过来的TaskSet按照指定的调度策略分发到Executor上执行...
有的时候,需要判断rdd.isEmpty(),以决定是否需要后续操作。而这个isEmpty方法是个action算子。也就是说如果rdd不为空,需要做后续操作的话,那么这个rdd的创建过程可能就执行了两遍。那么rdd需要cache吗? 进入isEmpty方法 def isEmpty(): Boolean = withScope { partitions.length == 0 || take(1).length == ...