线程中的异常" dispatcher-event-loop-0" java.lang.OutOfMemoryError:Java堆空间

时间:2017-01-26 20:15:15

标签: r apache-spark sparkr

我正在将文件中的数据读入R数据帧。数据帧的维度是1788228 10.由于这是巨大的,当我尝试转换为SparkDataFrame时,我收到此警告:

  

WARN scheduler.TaskSetManager:阶段0包含一个非常大的任务(48092 KB)。建议的最大任务大小为100 KB。

当我尝试执行任何操作操作时,例如

  

暗淡(DF)

它给我以下错误

  

线程中的异常" dispatcher-event-loop-0" java.lang.OutOfMemoryError:Java堆空间

Spark using python: How to resolve Stage x contains a task of very large size (xxx KB). The maximum recommended task size is 100 KB之类的其他帖子中,我可以理解它的发生,因为数据框的大小非常大。但是我该如何减小尺寸呢?该帖还建议广播。我们如何使用R?帮助

1 个答案:

答案 0 :(得分:0)

Java内存问题是一场噩梦。确保你rm()尽可能多地从工作空间和gc(),在循环结束时写下它,以便在每次迭代时清除它,如果可以的话!

然后,尝试逐行读取帧线中的数据,并将其保存到spark数据框中。

这是一个逐步阅读的教程:

read line by line

你自己拥有火花部分。