Pyspark ModuleNotFoundError:没有名为“ mmlspark”的模块

问题描述

我的环境:Ubuntu 64位,Spark 2.4.5,Jupyter Notebook。

互联网连接很好,没有任何错误:

spark = SparkSession.builder \
.appName("Churn Scoring LightGBM") \
.master("local[4]") \
.config("spark.jars.packages","com.microsoft.ml.spark:mmlspark_2.11:0.18.1") \
.getOrCreate()

from mmlspark.lightgbm import LightGBMClassifier

但是没有互联网连接,我得到了相关的jar(cloudera docs推荐的这种样式):

import os
mmlspark_jars_dir = os.path.join(os.environ["SPARK_HOME"],"mmlspark_jars")
mmlspark_jars = [os.path.join(mmlspark_jars_dir,x) for x in os.listdir(mmlspark_jars_dir)]
print(mmlspark_jars)
['/home/erkan/spark/mmlspark_jars/com.jcraft_jsch-0.1.54.jar','/home/erkan/spark/mmlspark_jars/com.microsoft.ml.spark_mmlspark_2.11-0.18.1.jar','/home/erkan/spark/mmlspark_jars/commons-codec_commons-codec-1.10.jar','/home/erkan/spark/mmlspark_jars/org.scalatest_scalatest_2.11-3.0.5.jar','/home/erkan/spark/mmlspark_jars/org.apache.httpcomponents_httpcore-4.4.10.jar','/home/erkan/spark/mmlspark_jars/org.openpnp_opencv-3.2.0-1.jar','/home/erkan/spark/mmlspark_jars/commons-logging_commons-logging-1.2.jar','/home/erkan/spark/mmlspark_jars/com.github.vowpalwabbit_vw-jni-8.7.0.2.jar','/home/erkan/spark/mmlspark_jars/org.apache.httpcomponents_httpclient-4.5.6.jar','/home/erkan/spark/mmlspark_jars/org.scala-lang_scala-reflect-2.11.12.jar','/home/erkan/spark/mmlspark_jars/org.scala-lang.modules_scala-xml_2.11-1.0.6.jar','/home/erkan/spark/mmlspark_jars/com.microsoft.cntk_cntk-2.4.jar','/home/erkan/spark/mmlspark_jars/io.spray_spray-json_2.11-1.3.2.jar','/home/erkan/spark/mmlspark_jars/org.scalactic_scalactic_2.11-3.0.5.jar','/home/erkan/spark/mmlspark_jars/com.microsoft.ml.lightgbm_lightgbmlib-2.2.350.jar']

我不得不像这样修改SparkSession:

spark = SparkSession.builder \
.appName("Churn Scoring LightGBM") \
.master("local[4]") \
.config("spark.jars",",".join(mmlspark_jars)) \
.getOrCreate()

我从终端观察到,一切似乎都很好,SparkSession已创建。然后我检查了Spark UI

SparkUI user added jars

然后我尝试导入:

from mmlspark.lightgbm import LightGBMClassifier

并收到此错误:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-10-df498625321c> in <module>
----> 1 from mmlspark.lightgbm import LightGBMClassifier

ModuleNotFoundError: No module named 'mmlspark'

我不明白,尽管我在SparkUI导入中看到相同的jar不适用于第二种方法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)