使用Spark进行模型训练,广播参数在训练期间更新,在每次迭代的前面,我使用
收集rddparams
作为地图
broadcast_params = sc.broadcast(params.collectAsMap())
...
update(params)
但我发现collectAsMap()
步骤的时间成本正在增加......为什么会发生这种情况?
答案 0 :(得分:0)
collectAsMap会将结果提取到驱动程序端。因此,如果结果大小很大,则需要很长时间。你没有提到你用于训练的算法,我猜你使用某种迭代算法,并且在几轮交互之后结果大小会增加。