我已经培训了一个PySpark ML模型,其中包含使用spark-submit提交的作业 . 我没有用另一份工作加载这个模型 . 我使用spark 2.2.0和python 2.6

我的代码

from pyspark.sql import SparkSession
from pyspark.ml.regression import LinearRegression
spark = SparkSession.builder.appName("load_model").enableHiveSupport().getOrCreate()

model_path = "/home/lr_model"
lr_model = LinearRegression.load(model_path)
print("Coefficients: " + str(lr_model.coefficients))
print("Intercept: " + str(lr_model.intercept))

我得到的不明确的错误信息:

Traceback(最近一次调用最后一次):文件“load_model.py”,第6行,在lr_model = LinearRegression.read() . load(model_path)文件“/hadoop/yarn/local/usercache/appcache/pyspark.zip/pyspark /ml/util.py“,第176行,在加载文件”/hadoop/yarn/local/usercache/appcache/py4j-0.10.1-src.zip/py4j/java_gateway.py“,第933行,在调用文件中” /hadoop/yarn/local/usercache/appcache/pyspark.zip/pyspark/sql/utils.py“,第63行,在deco文件中”/hadoop/yarn/local/usercache/appcache/py4j-0.10.1-src . zip / py4j / protocol.py“,第312行,在get_return_value中py4j.protocol.Py4JJavaError:调用o41.load时发生错误 . :java.lang.NoSuchMethodException:org.apache.spark.ml.regression.LinearRegressionModel . (java.lang.String),位于java.lang.Class.cons.Detrression(java.lang.String),java.lang.Class . Class.java:1825)atg.apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:337)at 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)at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:237 )py4j.reflection(内容:get.devoke:我在py4j.mands.Av)上的py4j.quest.Av响应时,py4j . .execute(CallCommand.java:79)at py4j.GatewayConnection.run(GatewayConnection.java:211)at java.lang.Thread.run(Thread.java:748)