问题描述
我从 spark-nlp 保存了一个预先训练的模型,然后我尝试在 Pycharm 中使用 anaconda env 运行 Python 脚本:
Model_path = "./xxx"
model = PipelineModel.load(Model_path)
但我收到以下错误: (我尝试使用 pyspark 2.4.4 & spark-nlp2.4.4,以及 pyspark 2.4.4 & spark-nlp2.5.4) 遇到同样的错误:
21/02/05 13:31:21 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR,use setLogLevel(newLevel).
Traceback (most recent call last):
File "C:/Users/xxxx/xxxxx.py",line 381,in <module>
model = PipelineModel.load(Model_path)
File "C:\Users\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\pyspark\ml\util.py",line 362,in load
return cls.read().load(path)
File "C:\Users\\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\pyspark\ml\pipeline.py",line 242,in load
return JavaMLReader(self.cls).load(path)
File "C:\Users\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\pyspark\ml\util.py",line 300,in load
java_obj = self._jread.load(path)
File "C:\Users\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\py4j\java_gateway.py",line 1257,in __call__
answer,self.gateway_client,self.target_id,self.name)
File "C:\Users\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\pyspark\sql\utils.py",line 63,in deco
return f(*a,**kw)
File "C:\Users\xxxxxxxx\anaconda3\envs\python3.7\lib\site-packages\py4j\protocol.py",line 328,in get_return_value
format(target_id,".",name),value)
py4j.protocol.Py4JJavaError: An error occurred while calling o314.load.
: java.lang.classNotFoundException: com.johnsNowlabs.nlp.DocumentAssembler
我是 pyspark 和 spark-nlp 的新手,有人可以帮忙吗?
解决方法
先了解一些上下文。 spark-nlp 库依赖于需要存在于 Spark 类路径中的 jar 文件。 根据您在 PySpark 中启动上下文的方式,可以通过三种方式提供此 jar。 a) 当你通过解释器启动你的 Python 应用程序时,你调用 sparknlp.start() 并且 jar 将被自动下载。
b) 您使用 --jars 开关将 jar 传递给 pyspark 命令。在本例中,您从发布页面获取 jar 并手动下载。
c) 启动pyspark并传递--packages,这里需要传递一个maven坐标,例如,
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_2.11:2.7.5
请在此处查看文档,
https://github.com/JohnSnowLabs/spark-nlp#usage
并确保选择您想要的版本。