Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何使用spark_sklearn为k-means运行GridSearchCV_Apache Spark_Scikit Learn_Pyspark - Fatal编程技术网

Apache spark 如何使用spark_sklearn为k-means运行GridSearchCV

Apache spark 如何使用spark_sklearn为k-means运行GridSearchCV,apache-spark,scikit-learn,pyspark,Apache Spark,Scikit Learn,Pyspark,我正在尝试使用spark_sklearn的GridSearchCV来加速3节点spark群集上的拟合过程。但是,当我调用.fit()时,出现了一些pickle.loads(obj)错误,我认为基本问题如下 ImportError:没有名为sklearn.cluster.k_的模块意味着_ 如果我以本地模式提交任务,则一切正常。看起来要么集群模式没有使用正确版本的gridsearchcv,要么sklearn是从集群模式下的不同路径为这两个工人导入的。有人能帮我吗 spark_sklearn:2.3

我正在尝试使用spark_sklearn的GridSearchCV来加速3节点spark群集上的拟合过程。但是,当我调用
.fit()
时,出现了一些
pickle.loads(obj)
错误,我认为基本问题如下

ImportError:没有名为sklearn.cluster.k_的模块意味着_

如果我以本地模式提交任务,则一切正常。看起来要么集群模式没有使用正确版本的gridsearchcv,要么sklearn是从集群模式下的不同路径为这两个工人导入的。有人能帮我吗

spark_sklearn:2.3.1

守则最相关的部分如下:

    import spark_sklearn
    from spark_sklearn import GridSearchCV
    ....some code for spark context, data reading and preparation....
    parameters = {"n_clusters":[d/2,d],"max_iter":[100,200]}
    km = KMeans(init='k-means++')
    grid = GridSearchCV(sc, km, cv=5, param_grid = parameters, scoring = 
    silhouette)

    grid.fit(X_train,y_train)

谢谢

多亏了@addmeans和@Vivek Kumar,我终于找到了问题所在。pyspark.python似乎意外地指向了不同的路径,因此python使用的包是不同的(也有sklearn)。它在本地模式而不是集群模式下工作的原因是,在这两种模式下,python解释器是不同的。因此,我在/conf/spark-defaults.conf中指定了集群模式应该使用的解释器

spark.pyspark.python=/path/to/my/interpreter

或者,您可以将pyspark.python=/path/my/explorer添加到/etc/profile,或者在spark_env.sh中进行更改,然后一切正常。

您可以提供您的代码吗?@addmeans感谢您的帮助。我已经发布了一些代码的相关部分。如果需要,我可以在这里发布整个文件。是否每个节点都安装了
sklearn
?@addmeans是。我使用conda在所有3个节点上安装“scikit learn”,版本为0.19.1。这提醒我,在主节点上,我也使用pip安装了scikit learn(0.19.2),但如果我卸载此软件包,则会出现错误“没有名为sklearn的模块”。(因此主节点使用pip scikit学习而不是conda学习)如何初始化集群(从节点)?独立地?您是否已在所有计算机上设置pyspark python驱动程序版本和路径?