【发布时间】:2023-03-09 11:51:02
【问题描述】:
我正在探索 pyspark 以及将 scikit-learn 与 pyspark 集成的可能性。我想使用 scikit-learn 在每个分区上训练一个模型。这意味着,当我的 RDD 被定义并分布在不同的工作节点之间时,我想使用 scikit-learn 并在每个工作节点上存在的每个分区上训练一个模型(比如说一个简单的 k-means)。由于 scikit-learn 算法采用 Pandas 数据帧,我最初的想法是为每个分区调用toPandas,然后训练我的模型。但是,toPandas 函数将 DataFrame 收集到驱动程序中,这不是我要寻找的东西。有没有其他方法可以实现这样的目标?
【问题讨论】:
-
如果我能以某种方式将每个分区转换为数据帧到类似数组的结构,那是可能的,对吧?
-
我看不出在每个分区上计算模型有什么关系。甚至是什么意思?在实践中,你如何组装模型?
-
这仍然没有意义。考虑到某个向量空间对这些质心进行了训练。您不能只接受它们并执行平均左右。
-
而如果你想使用Kmeans,为什么不直接使用spark的实现呢?
-
这个问题越来越广泛。首先,您不能以这种方式将 scikit-learn 与 spark 集成。其次,不,您仍然不能以这种方式使用聚类方法,这没有任何意义。我不会回答第三个,因为类数组结构可以是 RDD,可以是任何东西,所以这也没有任何意义。
标签: apache-spark scikit-learn pyspark