采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我在解析log时使用了mapPartitions,但是碰到了OOM问题,究其原因,我觉得是我使用的statList存放所有解析后的数据,这个list一直存在于内存中造成OOM。但是查了网上的说法,大家都说mapPartitions容易造成OOM,map本身则不会。我就想请问,spark在map的时候,1)将中间结果保存在哪里?2)为什么map的时候不容易OOM?3)我可不可以在mapPartitions里面使用map的一些内存管理的方式来避免OOM?
先在这里谢谢PK老师!
map是一条一条的处理,他不存数据啊,只有action才会触发执行。map partition是一个partition数据处理一次,数据量大就oom了么
那有没有什么方法可以让我们自己确定分区大小的呢?比如每一千条数据,我就对它们一起进行一次处理?
可以,根据数据量预估分区数,手工设置进去
问题就是生产中数据量无法预估,所以无法预估分区数,这时要怎么控制呢?
登录后可查看更多问答,登录/注册
快速转型大数据:Hadoop,Hive,SparkSQL步步为赢
2.0k 6
2.1k 6
2.2k 1
1.5k 21
1.8k 18
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号