"ImportError: No module named sklearn" when --deploy-mode is cluster
"ImportError: No module named sklearn" when --deploy-mode is cluster
我写了下面的pyspark代码。
from pyspark.sql import SparkSession
import sys
import sklearn
spark = SparkSession.builder.getOrCreate()
sc = spark.sparkContext
print (sys.version_info)
当我 运行 与:
spark-submit --master yarn --deploy-mode client test.py
它正确执行。但是,当我将 --deploy-mode 更改为“集群”时,即:
spark-submit --master yarn --deploy-mode cluster test.py
我看到以下错误。我不知道为什么会这样,我该如何解决。
ImportError: No module named sklearn
我看过。但这对我没有帮助。
--deploy-mode client
将使用您提交 Spark 应用程序的当前机器作为驱动程序,显然该机器安装了 sklearn 包。但是,--deploy-mode cluster
会从可用资源中随机选择一个驱动程序,因此您事先不知道哪台机器将成为驱动程序,其中一台可能没有安装 sklearn 包,因此您会遇到错误。所以解决方案是在集群中的所有可用节点中安装 sklearn 包
我写了下面的pyspark代码。
from pyspark.sql import SparkSession
import sys
import sklearn
spark = SparkSession.builder.getOrCreate()
sc = spark.sparkContext
print (sys.version_info)
当我 运行 与:
spark-submit --master yarn --deploy-mode client test.py
它正确执行。但是,当我将 --deploy-mode 更改为“集群”时,即:
spark-submit --master yarn --deploy-mode cluster test.py
我看到以下错误。我不知道为什么会这样,我该如何解决。
ImportError: No module named sklearn
我看过
--deploy-mode client
将使用您提交 Spark 应用程序的当前机器作为驱动程序,显然该机器安装了 sklearn 包。但是,--deploy-mode cluster
会从可用资源中随机选择一个驱动程序,因此您事先不知道哪台机器将成为驱动程序,其中一台可能没有安装 sklearn 包,因此您会遇到错误。所以解决方案是在集群中的所有可用节点中安装 sklearn 包