首页 > 解决方案 > SparkNLP NerDLModel 加载抛出 NoSuchMethodException

问题描述

我目前正在使用 John Snow 实验室的 SparkNLP 库来训练自定义 NER 模型。我能够成功完成训练并且模型被保存到磁盘中。当我尝试为下一步加载模型以实际标记一些示例数据时,我遇到了以下错误。我在 Windows 10 上使用 Ubuntu。 spark-nlp_2.12:3.1.2 和 Spark 3.1.2,scala 2.12.10 OpenJDK 8

我也在 PySpark 上尝试过同样的方法,我得到了相同的确切错误 pyspark 错误:

java.lang.NoSuchMethodException: org.apache.spark.ml.PipelineModel.(java.lang.String) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java :1825) 在 org.apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:468) 在 com.johnsnowlabs.nlp.FeaturesReader.load(ParamsAndFeaturesReadable.scala:12) 在 sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) py4j.Gateway.invoke(Gateway.java:282) py4j.commands.AbstractCommand。invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748 )

任何帮助表示赞赏。Scala 版本错误 java.lang.NoSuchMethodException:

org.apache.spark.ml.PipelineModel.(java.lang.String) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java:1825) at org. apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:468) at com.johnsnowlabs.nlp.FeaturesReader.load(ParamsAndFeaturesReadable.scala:12) at com.johnsnowlabs.nlp.FeaturesReader.load(ParamsAndFeaturesReadable.scala: 8)

val loaded_ner_model = NerDLModel.load("./NER_bert_prod_20200221")
   .setInputCols("sentence", "token", "bert")
   .setOutputCol("ner")
   

标签: scalaapache-sparkpysparknamed-entity-recognitionjohnsnowlabs-spark-nlp

解决方案


推荐阅读