当前位置:  开发笔记 > 大数据 > 正文

Spark Mlib FPGrowth作业因内存错误而失败

如何解决《SparkMlibFPGrowth作业因内存错误而失败》经验,为你挑选了0个好方法。

我有一个相当简单的用例,但可能是非常大的结果集.我的代码执行以下操作(在pyspark shell上):

from pyspark.mllib.fpm import FPGrowth
data = sc.textFile("/Users/me/associationtestproject/data/sourcedata.txt")
transactions = data.map(lambda line: line.strip().split(' '))
model = FPGrowth.train(transactions, minSupport=0.000001, numPartitions=1000)
# Perform any RDD operation
for item in model.freqItemsets().toLocalIterator():
    # do something with item

我发现无论何时通过调用count()或toLocalIterator来启动实际处理,我的操作最终都会因内存不足错误而结束.FPGrowth没有对我的数据进行分区吗?我的结果数据是如此之大,甚至连一个分区都会扼杀我的记忆?如果是的话,有没有办法我可以以"流"方式将RDD保存到磁盘而不试图将其保存在内存中?

感谢您的任何见解.

编辑: FPGrowth的一个基本限制是整个FP树必须适合内存.因此,有关提高最低支持门槛的建议是有效的.

-Raj

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有