我正在将文件中的数据读入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?帮助
答案 0 :(得分:0)
Java内存问题是一场噩梦。确保你rm()
尽可能多地从工作空间和gc()
,在循环结束时写下它,以便在每次迭代时清除它,如果可以的话!
然后,尝试逐行读取帧线中的数据,并将其保存到spark数据框中。
这是一个逐步阅读的教程:
你自己拥有火花部分。