火花机器学习更好的设计

2024-09-27 07:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Spark中实现一个机器学习算法。其基本思想是将数据分成N个分区,并在每个单独的数据集分区上分别学习N个单独的模型。在预测过程中,我们对这些N个模型进行投票,得到它们的o/p,并将它们组合起来。你知道吗

a)为了将数据划分为N个部分,我们使用repartition(N) b) 为了学习每个分区上的模型,我们使用mapPartitionsWithIndex

问题是,多个分区映射到同一台物理机器——它在同一个物理节点上启动多个模型构建(由mapPartitionsWithIndex调用)——导致节点内存不足(我们已经将executor内存最大化了)。你知道吗

有没有更好的设计方法?你知道吗


Tags: 数据内存模型算法机器节点过程物理
1条回答
网友
1楼 · 发布于 2024-09-27 07:24:50

考虑使用randomSplit()函数,该函数根据提供的权重将一个数据帧随机拆分为一组数据帧。你知道吗

示例(Pypark):

给定df数据帧

df = sc.parallelize([[1, 1], [2, 2], [3, 3], [4, 4]]).toDF(["a", "b"])

应用:

splittedDF = df.randomSplit([0.5, 0.5], 1234)

相关问题 更多 >

    热门问题