Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PySpark ML Pipeline.load结果抛出java.lang.UnsupportedOperationException:空集合_Python_Pyspark_Apache Spark Ml - Fatal编程技术网

Python PySpark ML Pipeline.load结果抛出java.lang.UnsupportedOperationException:空集合

Python PySpark ML Pipeline.load结果抛出java.lang.UnsupportedOperationException:空集合,python,pyspark,apache-spark-ml,Python,Pyspark,Apache Spark Ml,我有一个安装了PySpark的管道,我正在将其保存到磁盘以供以后使用 以下是我的管道代码: model=Pipeline(阶段=[段索引器、模型名称索引器、制造名称索引器、引擎类型索引器、段编码器、模型名称索引器、制造名称索引器、引擎类型索引器、估算器])。拟合(训练数据) model.save('文件:/opt/app/fitted model') 这会将模型保存到磁盘 我正试图像这样加载模型 model2=pyspark.ml.pipeline.PipelineModel.load(“文件

我有一个安装了PySpark的管道,我正在将其保存到磁盘以供以后使用

以下是我的管道代码:

model=Pipeline(阶段=[段索引器、模型名称索引器、制造名称索引器、引擎类型索引器、段编码器、模型名称索引器、制造名称索引器、引擎类型索引器、估算器])。拟合(训练数据)
model.save('文件:/opt/app/fitted model')
这会将模型保存到磁盘

我正试图像这样加载模型

model2=pyspark.ml.pipeline.PipelineModel.load(“文件:/tmp/mymodels/fitted model”)
哪个扔

回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/spark/python/pyspark/ml/util.py”,第257行,已加载
返回cls.read().load(路径)
文件“/usr/lib/spark/python/pyspark/ml/util.py”,第197行,已加载
java_obj=self._jread.load(路径)
文件“/usr/lib/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py”,第1133行,在__
文件“/usr/lib/spark/python/pyspark/sql/utils.py”,第63行,deco格式
返回f(*a,**kw)
文件“/usr/lib/spark/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py”,第319行,在get\u返回值中
py4j.protocol.Py4JJavaError:调用o2760.load时出错。
:java.lang.UnsupportedOperationException:空集合
位于org.apache.spark.rdd.rdd$$anonfun$first$1.apply(rdd.scala:1370)
位于org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
位于org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
位于org.apache.spark.rdd.rdd.withScope(rdd.scala:362)
位于org.apache.spark.rdd.rdd.first(rdd.scala:1367)
位于org.apache.spark.ml.util.DefaultParamsReader$.loadMetadata(ReadWrite.scala:382)
位于org.apache.spark.ml.Pipeline$sharedardwrite$.load(Pipeline.scala:266)
位于org.apache.spark.ml.PipelineModel$PipelineModelReader.load(Pipeline.scala:347)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.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:244)
位于py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
在py4j.Gateway.invoke处(Gateway.java:280)
位于py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
在py4j.commands.CallCommand.execute(CallCommand.java:79)
在py4j.GatewayConnection.run处(GatewayConnection.java:214)
运行(Thread.java:748)
我做错了什么


`

我必须执行
管道.transform
,以便管道在保存之前对数据帧实际应用转换。
这样做之后,加载模型会使模型实例返回,然后我们可以在数据帧上再次应用
transform

你为什么要在存钱之前这么做?当然,您可以只做
pipeline.fit(train)
并保存结果?然后在读回时执行
transform()
?或者它不是这样工作的?