大数据--spark生态6--spark高频面试题(常见算子之间的异同点)

本文深入探讨了Spark中map与mappartitions、map与flatmap、coalesce在Hive与Spark的区别、coalesce与repartitions的差异、groupByKey与reduceByKey的多个层面对比,以及reduce、reduceByKey、groupByKey与cogroup、join的算子区别,揭示了各个操作的性能和适用场景,是Spark面试的重要参考资料。
摘要由CSDN通过智能技术生成

目录

一:map和mappartitions区别

二:map和flatmap区别

 三:coalesce在hive和spark中对应的区别

四:coalesce和repartitions的区别

五:groupByKey和reduceByKey区别

5.1 浅层次区别

5.2 spark中shuffle必须落盘

5.3 预聚合

 5.4 深层次区别

5.5 使用场景区别

六:spark算子reduce,reduceByKey,groupByKey的区别

七:cogroup和join区别


一:map和mappartitions区别

        map是对rdd中的每一个元素进行操作,mapPartitions则是对rdd中每个分区的迭代器进行操作;从性能上看,mappartitions的性能较高,举例来说,如果一个partition中有一万条数据,在使用map的时候,function需要执行和计算1万次;使用mappartitions操作的时候,一个task仅仅会执行一次function。从瓶颈上说,如果一个分区里面数据量过大,比如几百万条,一次传入function以后,内存可能不够,造成内存溢出。开发指导:在内存空间较大的时候建议使用mappartitions

二:map和flatmap区别

        区别主要在于操作之后得到的值的区别。例如对array(“a_b”,”c_d”,”e_f”)进行map(split(“_”))和flatmap(split(“_”))。map函数后,RDD的值为 Array(Array("a","b"),Array("c","d"),Array("e","f"))。flatMap函数处理后,RDD的值为 Array("a","b","c","d","e","f")2.5 rdd动作算子也就说flatmap会将其返回的数组全部拆撒,然后合成到一个数组中。

        归纳起来就是:从操作上看,flatmap最后会把所有的对象再合成为一个对象;从返回的结果数量上看,map返回的数据对象的个数和原来输入数据是相同的,而flatmap最后就返回一个对象。

 三:coalesce在hive和spark中对应的区别

        需要注意的是,hive中的SQL是SQL,spark中的api是api,这两种是不同的概念。在写SQL语句的时候coales

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值