Apache Spark提供机器学习算法的数据并行实现 . 它还开始支持机器学习算法的任务并行化,例如,在交叉验证的参数调整的上下文中,例如使用Spark的Scikit-learn集成包:https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-spark.html

我的问题是,在Spark中结合这两种并行模式的推荐方法是什么:

  • 对分布式数据执行ML算法,并且

  • 在同一框架中执行算法的多个实例(使用不同的调整参数)?

请记住,在此上下文中的任务并行性仍然涉及“聚集”阶段,其中必须组合(例如,最小化)来自每个任务的结果(例如,交叉验证的错误);所以任务不是完全独立的 .