“线程中的异常”;dispatcher-event-loop-0“;java.lang.OutOfMemoryError:java堆空间

“线程中的异常”;dispatcher-event-loop-0“;java.lang.OutOfMemoryError:java堆空间,r,apache-spark,sparkr,R,Apache Spark,Sparkr,我正在将文件中的数据读取到R数据帧中。数据帧的尺寸为1788228 10。由于这是巨大的,当我尝试转换为SparkDataFrame时,我得到以下警告: WARN scheduler.TaskSetManager:阶段0包含非常大的任务(48092 KB)。建议的最大任务大小为100 KB 当我尝试执行任何动作操作时,比如 dim(df) 它给了我以下的错误 线程“dispatcher-event-loop-0”java.lang.OutOfMemoryError中出现异常:java堆空间 从其

我正在将文件中的数据读取到R数据帧中。数据帧的尺寸为1788228 10。由于这是巨大的,当我尝试转换为SparkDataFrame时,我得到以下警告:

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

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

dim(df)

它给了我以下的错误

线程“dispatcher-event-loop-0”java.lang.OutOfMemoryError中出现异常:java堆空间


从其他的帖子,比如,我可以理解这是因为dataframe的大小非常大。但是我该如何缩小尺寸呢?邮报还建议广播。我们如何使用R?帮助。

Java内存问题是一场噩梦。确保您从工作空间中获得了尽可能多的
rm()
gc()
,如果可以的话,经常将其写在循环的末尾,以便在每次迭代中清除

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

以下是有关以增量方式阅读的教程:


您可以自己使用spark部件。

您使用哪个函数将数据帧上载到spark?@j df=as.dataframe(rdf)如果您想将数据帧上载到spark并使用它,您也可以使用SparkyR()。一旦安装,并使用类似以下内容连接到群集
sc