热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javapython运行内存_java.lang.OutOfMemoryError在rdd.托收()当所有内存设置都设置为拥抱时...

我用sparksubmit运行以下python脚本rrdd.map(list).groupBy(lambdax:x[0]).map(lambdax:x[1]).map(list)r

我用spark submit运行以下python脚本r = rdd.map(list).groupBy(lambda x: x[0]).map(lambda x: x[1]).map(list)

r_labeled = r.map(f_0).flatMap(f_1)

r_labeled.map(lambda x: x[3]).collect()

它得到了java.lang.OutOfMemoryError,特别是最后一行的collect()操作

^{pr2}$

消息显示OutOfMemoryError,但没有其他内容。是关于堆、垃圾收集还是什么的?我不知道。在

不管怎样,我试着把所有关于内存的东西配置成巨大的价值。在spark.driver.maxResultSize = 0 # no limit

spark.driver.memory = 150g

spark.executor.memory = 150g

spark.worker.memory = 150g

(并且服务器有157g的可用物理内存。)

同样的错误仍然存在。在

然后我把输入数据减少了一点,代码每次都能完美地通过。实际上,collect()获得的数据大约是1.8g,远远小于物理15g内存。在

现在,我确信错误不是关于代码和物理内存是没有限制的。这就像输入数据的大小有一个阈值,传递它将导致内存不足错误。在

那么我怎样才能提升这个thresold,这样我就可以在没有内存错误的情况下处理更大的输入数据呢?有什么设置吗?在

谢谢。在

==========随访========

根据this,这个错误与Java序列化程序和映射转换中的大对象有关。我确实在代码中使用了大对象。

想知道如何让Java序列化程序适应大对象。在



推荐阅读
author-avatar
水果jia
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有