将scikit-learn与pyspark

时间:2016-07-04 14:59:37

标签: apache-spark scikit-learn pyspark

我正在探索pyspark以及将scikit-learn与pyspark整合的可能性。我想使用scikit-learn在每个分区上训练模型。这意味着,当我的RDD被定义并在不同的工作节点之间分配时,我想在每个存在的分区上使用scikit-learn并训练一个模型(让我们说一个简单的k-means)在每个工作节点上。由于scikit-learn算法采用了Pandas数据帧,我最初的想法是为每个分区调用toPandas,然后训练我的模型。但是,toPandas函数将DataFrame收集到驱动程序中,这不是我正在寻找的东西。有没有其他方法可以实现这样的目标?

2 个答案:

答案 0 :(得分:4)

scikit-learn目前还不能与spark完全集成,原因是scikit-learn算法没有实现分发,因为它只能在一台机器上运行。

然而,您可以在spark-sklearn中找到准备使用Spark-Scikit集成工具,该工具支持(暂时)在Spark上执行GridSearch以进行交叉验证。

答案 1 :(得分:1)

不,scikit learning不能与pyspark一起使用,原因是scikit learning是一个可以在单个计算机上运行的软件包,而spark是一个分布式环境。