Python Pyspark-加载ML模型时出错

Python Pyspark-加载ML模型时出错,python,apache-spark,machine-learning,pyspark,Python,Apache Spark,Machine Learning,Pyspark,我已经使用spark submit训练了一个PySpark ML模型,并提交了一个作业。我无法在该模型中加载其他作业。我使用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().g

我已经使用spark submit训练了一个PySpark ML模型,并提交了一个作业。我无法在该模型中加载其他作业。我使用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))
我得到的错误信息不清楚:

回溯(最近一次呼叫最后一次):

文件“load_model.py”,第6行,在lr_model=LinearRegression.read()中。load(model_path)
文件“/hadoop/thread/local/usercache/appcache/pyspark.zip/pyspark/ml/util.py”, 第176行,在加载文件中 “/hadoop/thread/local/usercache/appcache/py4j-0.10.1-src.zip/py4j/java_gateway.py”, 第933行,在调用文件中 “/hadoop/thread/local/usercache/appcache/pyspark.zip/pyspark/sql/utils.py”, 第63行,在deco文件中 “/hadoop/thread/local/usercache/appcache/py4j-0.10.1-src.zip/py4j/protocol.py”, 第312行,在get_return_值py4j.protocol.Py4JJavaError中:一个错误 调用o41.load时发生:java.lang.NoSuchMethodException: org.apache.spark.ml.regression.LinearRegressionModel.(java.lang.String) 位于java.lang.Class.getConstructor0(Class.java:3082) java.lang.Class.getConstructor(Class.java:1825)位于 org.apache.spark.ml.util.DefaultParamsReader.load(ReadWrite.scala:337) 位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498) py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:237)位于 位于的py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) py4j.Gateway.invoke(Gateway.java:280)位于 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:128) 在py4j.commands.CallCommand.execute(CallCommand.java:79)处 在上运行(GatewayConnection.java:211) run(Thread.java:748)


我认为您必须从pyspark.ml.regression导入LinearRegressionModel并执行
lr\u model=LinearRegressionModel.load(model\u path)
此外,Spark 2.2不再支持Python 2.6。