列举Spark常用的transformation和action算子,有哪些算子会导致Shuffle?

提问者:帅平 问题分类:面试刷题
列举Spark常用的transformation和action算子,有哪些算子会导致Shuffle?
2 个回答
ヤ
常用的action算子有:
count:返回RDD中元素的个数。
collect:将RDD中的所有元素收集到Driver节点上,并返回一个数组。
first:返回RDD中的第一个元素。
take:返回RDD中前n个元素。
reduce:对RDD中的元素应用一个reduce函数,返回一个单个值。
上述算子中,groupByKey、reduceByKey、join等算子会导致Shuffle操作,因为它们需要将具有相同key的元素进行分组,而这些元素通常分布在不同的节点上。Shuffle操作会将数据从不同的节点收集到一个节点上进行计算,因此需要消耗大量的网络和计算资源。
join()和cogroup():这两个算子需要将具有相同键的元素进行连接操作,也需要进行Shuffle操作。
sortByKey():这个算子需要对RDD中的元素进行排序,因此需要进行Shuffle操作。
repartition()和coalesce():这两个算子都需要对RDD进行重新分区操作,需要进行Shuffle操作。
发布于:1年前 (2023-02-27) IP属地:四川省
去
Spark中常用的transformation算子有:
map:对RDD中的每个元素应用一个函数,返回一个新的RDD。
filter:对RDD中的每个元素应用一个谓词函数,返回一个包含满足谓词的元素的新RDD。
flatMap:类似于map,但是每个输入元素可以映射到多个输出元素,返回一个新的RDD。
groupByKey:将具有相同key的元素进行分组,返回一个(key, values)的Tuple,其中values是一个迭代器。
reduceByKey:将具有相同key的元素进行分组,并将每个key对应的values应用一个reduce函数,返回一个(key, reduced value)的Tuple。
join:对两个具有相同key的RDD进行join操作,返回一个新的RDD。
发布于:1年前 (2023-02-27) IP属地:四川省
我来回答