Apache Spark中单个作业的条件迭代

时间:2015-07-27 13:04:48

标签: apache-spark

我正在使用Apache Spark进行迭代算法,声称它非常适合。到目前为止,我发现的示例创建了一个具有硬编码迭代次数的单个作业。我需要算法运行直到满足某个条件。

我当前的实现为每个迭代启动一个新工作,如下所示:

var data = sc.textFile(...).map().cache()
while(data.filter(...).isEmpty()) {
  // Run the Algorithm (also handles caching)
  val data = performStep(data)
}

效率很低。在每次迭代之间,我等待很长时间才能开始下一个工作。对于四台服务器,我在每个作业之间等待大约10秒,对于32台服务器几乎是100秒。总的来说,我最终花费了至少一半的运行时间在作业之间等待。

我发现条件迭代在某些类型的算法中很常见,例如机器学习中的早期停止标准。所以我希望这可以改进。

有更有效的方法吗?例如,在单个作业中运行此条件重复?谢谢!

0 个答案:

没有答案