spark语言中设为和增加的区别

spark语言中设为和增加的区别,第1张

在Spark编程中,常常需要对RDD进行修改、更新或者筛选等 *** 作,其中包括设为和增加两种 *** 作,这两种 *** 作的区别如下:

1. 设为 *** 作:将某个RDD替换为新的RDD,即将原有的RDD对象赋值为一个新的RDD对象,可以使用“=”符号或者“persist”方法来实现。设为 *** 作会将原有的RDD对象全部删除或者替换掉,所以在使用设为 *** 作时,需要注意对原有的RDD对象进行备份或者彻底删除。

2. 增加 *** 作:将某个RDD与新的RDD进行合并,即将新的RDD添加到原有的RDD中,可以使用“union”等方法来实现。增加 *** 作会保留原有的RDD对象不变,并将新的RDD对象添加进去,所以在使用增加 *** 作时,需要注意对数据的重复和重复计算问题。

总之,设为 *** 作和增加 *** 作都是RDD *** 作中常见的 *** 作,区别在于设为 *** 作会替换原有的RDD,而增加 *** 作会在原有的RDD基础上添加新的RDD。需要根据实际情况进行选择和使用。

job由stage构成,stage由task构成。

job:一个action就是一个job

job-划分->stage:当遇到宽依赖,则划分一个stage。

stage-划分->task:task对等partition概念。

Spark 的核心是建立在统一的抽象d性分布式数据集(Resiliennt Distributed Datasets,RDD)之上的.

RDD特性:

图 1 RDD 分区及分区与工作节点的分布关系

transformation:惰性、实际没有执行、直到action *** 作才真正运行

表 1 RDD转换 *** 作(rdd1={1, 2, 3, 3},rdd2={3,4,5})

action *** 作:行动 *** 作接受 RDD,但是返回非 RDD,即输出一个值或者结果

窄依赖是指父 RDD 的每个分区 最多 会被1个子 RDD 的分区所使用。

宽依赖是指父 RDD 的每个分区 会被多个子分区所依赖。

map、filter、union 等 *** 作是窄依赖,而 groupByKey、reduceByKey 等 *** 作是宽依赖。

join *** 作有两种情况,如果 join *** 作中使用的每个 Partition 仅仅和固定个 Partition 进行 join,则该 join *** 作是窄依赖,其他情况下的 join *** 作是宽依赖。

所以可得出一个结论,窄依赖不仅包含一对一的窄依赖,还包含一对固定个数的窄依赖,也就是说,对父 RDD 依赖的 Partition 不会随着 RDD 数据规模的改变而改变。

Spark 的这种依赖关系设计,使其具有了天生的容错性,大大加快了 Spark 的执行速度。RDD 通过血缘关系记住了它是如何从其他 RDD 中演变过来的。当这个 RDD 的部分分区数据丢失时,它可以通过血缘关系获取足够的信息来重新运算和恢复丢失的数据分区,从而带来性能的提升。

相对而言,窄依赖的失败恢复更为高效,它只需要根据父 RDD 分区重新计算丢失的分区即可,而不需要重新计算父 RDD 的所有分区。而对于宽依赖来讲,单个结点失效,即使只是 RDD 的一个分区失效,也需要重新计算父 RDD 的所有分区,开销较大。

一般来讲,对于陌生的名词,大家的第一个反应都是“What is it?”.

RDD是Spark的核心内容,在Spark的官方文档中解释如下:RDD is a fault-tolerant collection of elements that can be operated on in parallel.由此可见,其中有两个关键词:fault-tolerant &in parallel.首先,容错性是RDD的一个重要特性;其次,它是并行计算的数据.

RDD的中文解释为:d性分布式数据集,全称Resilient Distributed Datasets.宾语是dataset,即内存中的数据库.RDD 只读、可分区,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用.所谓d性,是指内存不够时可以与磁盘进行交换.这涉及到了RDD的另一特性:内存计算,就是将数据保存到内存中.同时,为解决内存容量限制问题,Spark为我们提供了最大的自由度,所有数据均可由我们来进行cache的设置,包括是否cache和如何cache.

如果看到这里,你的思维里对RDD还是没有任何概念的话,或许可以参照我的形象化理RDD,就是一个被武装起来的数据集.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11756868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存