我在Python 3中训练一个机器学习模型,但花费的时间很长。我有一个非常大的数据框,并且我使用的算法在Spark MLlib中不可用。将我的数据框上传到Spark并使用非MLlib算法是否在训练时间上有所帮助?
在操作数据框方面,我明白操作会更快,但如果算法不是分布式的,我不确定是否会加速训练。我刚开始使用Spark,对它的理解可能还不够准确。
回答:
是的,Spark可以帮助训练模型,即使该模型不属于Spark标准库的一部分。这完全取决于你在训练模型时是否利用了集群计算的威力。假设你有一个20节点的i3.xlarge集群(每个节点30.5 GB的RAM),并且所有节点并行处理数据来训练你的模型。这基本上就是一个610 GB的超级计算机在你手中。
如果你没有正确地构建代码,你可能会无意中在驱动节点上执行所有计算,只使用集群中的一个节点,而让其他节点闲置。
Spark在处理巨大数据集上也非常强大。假设你有一个Python模型,它接收多个输入并返回一个输出。Spark是运行这个模型在比如说500亿行数据上的绝佳方式。
不清楚为什么你的问题被扣分,在我看来这是一个很好的问题。