请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

map和mapPartition

老师你好,
map():每次处理一条数据
mapPartition():每次处理一个分区的数据,这个分区的数据处理完后,原RDD中分区的数据才能释放
咱这个peopleDetail.mapPartitions(x=>{。。。。
中为啥要用mapPartition呢。这个表的分区数据体现到哪了呢?不太明白

正在回答 回答被采纳积分+3

2回答

Michael_PK 2020-10-12 21:56:27

map的如果是做每条处理,不带聚合的,那么你认为会有问题吗?

1 回复 有任何疑惑可以回复我~
慕少7351152 2022-07-01 09:35:29

https://cloud.tencent.com/developer/article/1805305

试着说说我的理解,map和mapPartition在处理机制上的区别题目中已经说了,这里区别在于处理一个分区的数据的时候如果有可共用的对象(比如数据库连接,或者是这里的broadcast变量数据),可以避免map中每条数据重复的创建删除,比如这里的broadcast变量,如果用map估计是要频繁的创建和释放broadcast.value的空间

0 回复 有任何疑惑可以回复我~
  • 这2个算子其实都有各自的场景。mp算子的如果一个分区数据量非常大大大,那么就可能会有oom产生。
    回复 有任何疑惑可以回复我~ 2022-07-04 00:25:20
  • 嗯嗯,忘了这一条也是
    回复 有任何疑惑可以回复我~ 2022-07-04 10:21:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信