采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好, map():每次处理一条数据 mapPartition():每次处理一个分区的数据,这个分区的数据处理完后,原RDD中分区的数据才能释放 咱这个peopleDetail.mapPartitions(x=>{。。。。 中为啥要用mapPartition呢。这个表的分区数据体现到哪了呢?不太明白
map的如果是做每条处理,不带聚合的,那么你认为会有问题吗?
https://cloud.tencent.com/developer/article/1805305
试着说说我的理解,map和mapPartition在处理机制上的区别题目中已经说了,这里区别在于处理一个分区的数据的时候如果有可共用的对象(比如数据库连接,或者是这里的broadcast变量数据),可以避免map中每条数据重复的创建删除,比如这里的broadcast变量,如果用map估计是要频繁的创建和释放broadcast.value的空间
这2个算子其实都有各自的场景。mp算子的如果一个分区数据量非常大大大,那么就可能会有oom产生。
嗯嗯,忘了这一条也是
登录后可查看更多问答,登录/注册
大数据工程师干货课程 带你从入门到实战掌握SparkSQL
822 15
849 14
1.1k 12
1.5k 12
1.1k 11