我试图在Spark中实现一个机器学习算法。其基本思想是将数据分成N个分区,并在每个单独的数据集分区上分别学习N个单独的模型。在预测过程中,我们对这些N个模型进行投票,得到它们的o/p,并将它们组合起来。你知道吗
a)为了将数据划分为N个部分,我们使用repartition(N)
b) 为了学习每个分区上的模型,我们使用mapPartitionsWithIndex
问题是,多个分区映射到同一台物理机器——它在同一个物理节点上启动多个模型构建(由mapPartitionsWithIndex
调用)——导致节点内存不足(我们已经将executor内存最大化了)。你知道吗
有没有更好的设计方法?你知道吗
考虑使用randomSplit()函数,该函数根据提供的权重将一个数据帧随机拆分为一组数据帧。你知道吗
示例(Pypark):
给定df数据帧
应用:
相关问题 更多 >
编程相关推荐