gpt4 book ai didi

apache-spark - 将 scikit-learn 与 pyspark 集成

转载 作者:行者123 更新时间:2023-12-04 04:53:40 28 4
gpt4 key购买 nike

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

最佳答案

scikit-learn 目前还不能与 spark 完全集成,原因是 scikit-learn 算法没有实现分布式,因为它只在一台机器上工作。
不过,您可以在 spark-sklearn 中找到随时可用的 Spark - Scikit 集成工具。支持(暂时)在 Spark 上执行 GridSearch 以进行交叉验证。
编辑
截至 2020 年 spark-sklearn已弃用,joblib-spark是它的推荐继任者。根据文档,您可以轻松地将交叉验证分发到 Spark 集群,如下所示:

from sklearn.utils import parallel_backend
from sklearn.model_selection import cross_val_score
from sklearn import datasets
from sklearn import svm
from joblibspark import register_spark

register_spark() # register spark backend

iris = datasets.load_iris()
clf = svm.SVC(kernel='linear', C=1)
with parallel_backend('spark', n_jobs=3):
scores = cross_val_score(clf, iris.data, iris.target, cv=5)

print(scores)
GridSearchCV 可以以相同的方式分发。

关于apache-spark - 将 scikit-learn 与 pyspark 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38187637/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com