Spark rdd.collectAsMap()如何工作?为什么在培训过程中成本增加的时间?

时间:2018-05-23 06:26:39

标签: apache-spark pyspark spark-streaming

使用Spark进行模型训练,广播参数在训练期间更新,在每次迭代的前面,我使用

收集rdd params作为地图
broadcast_params = sc.broadcast(params.collectAsMap())
...
update(params)

但我发现collectAsMap()步骤的时间成本正在增加......为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

collectAsMap会将结果提取到驱动程序端。因此,如果结果大小很大,则需要很长时间。你没有提到你用于训练的算法,我猜你使用某种迭代算法,并且在几轮交互之后结果大小会增加。