Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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
Python 在Spark模式下运行时,Spark sklearn GridSearch集成代码失败_Python_Apache Spark_Machine Learning_Scikit Learn_Grid Search - Fatal编程技术网

Python 在Spark模式下运行时,Spark sklearn GridSearch集成代码失败

Python 在Spark模式下运行时,Spark sklearn GridSearch集成代码失败,python,apache-spark,machine-learning,scikit-learn,grid-search,Python,Apache Spark,Machine Learning,Scikit Learn,Grid Search,我从中复制了spark sklearn GridSearch示例,并使用spark sklearn python包在使用spark的分布式环境中运行GridSearch。我的python版本是2.7,spark 2.1.0 我使用--master localspark submit--master local XGBoostGridSearch.py在spark中运行它。代码成功运行 当我在spark中使用--master warnspark submit--master warn--py fi

我从中复制了spark sklearn GridSearch示例,并使用spark sklearn python包在使用spark的分布式环境中运行GridSearch。我的python版本是2.7,spark 2.1.0

我使用--master local
spark submit--master local XGBoostGridSearch.py
在spark中运行它。代码成功运行

当我在spark中使用--master warn
spark submit--master warn--py files spark_sklearn.zip TestGridSearch.py
运行相同的代码时,代码失败,出现以下错误消息

Caused by: org.apache.spark.api.python.PythonException: Traceback (most recent call last):

return pickle.loads(obj)

ImportError: No module named sklearn.ensemble.forest
模块sklearn.employee.forest和所有其他python依赖项已通过Anaconda2安装在所有执行器上,但仍会收到上述错误消息。下面是我的代码

from sklearn import grid_search, datasets
from sklearn.ensemble import RandomForestClassifier
digits = datasets.load_digits()
X, y = digits.data, digits.target
param_grid = {"max_depth": [3, None],
              "max_features": [1, 3, 10],
              "min_samples_split": [1, 3, 10],
              "min_samples_leaf": [1, 3, 10],
              "bootstrap": [True, False],
              "criterion": ["gini", "entropy"],
              "n_estimators": [10, 20, 40, 80]}
#gs = grid_search.GridSearchCV(RandomForestClassifier(), param_grid=param_grid)
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("SciKitLearn-GridSearch")\
    .config("spark.network.timeout","10000s")\
    .config("spark.rpc.askTimeout","10000s").getOrCreate()
spark.sparkContext.addPyFile("spark_sklearn.zip")
from spark_sklearn import GridSearchCV
gs = GridSearchCV(spark.sparkContext, RandomForestClassifier(), param_grid)
gs.fit(X, y)
注意:TestGridSearch.py是我的代码所在的位置


很难看到它在spark本地模式下运行,而不是在纱线(分布式)模式下运行。非常感谢您的帮助。

如果您认为存在依赖关系,则Spark很可能不会使用您认为存在依赖关系的解释器。仔细检查工作节点的路径和
PYSPARK\u PYTHON
。谢谢@zero323。你说得对。Spark worker节点未指向正确的python位置。我使用spark-defaults.conf文件中的
spark.pyspark.python/mnt/opt/anaconda/bin/python
为所有spark工作节点设置python位置。它开始工作了。如果您认为存在依赖项,那么Spark很可能不使用您认为它存在的解释器。仔细检查工作节点的路径和
PYSPARK\u PYTHON
。谢谢@zero323。你说得对。Spark worker节点未指向正确的python位置。我使用spark-defaults.conf文件中的
spark.pyspark.python/mnt/opt/anaconda/bin/python
为所有spark工作节点设置python位置。它开始工作了。