English 中文(简体)
从浮油中排出的管道模型
原标题:Cannot load pipeline model from pyspark

Hello I试图用管道模式在火.中装载节省的管道。

    selectedDf = reviews
        .select("reviewerID", "asin", "overall")

    # Make pipeline to build recommendation
    reviewerIndexer = StringIndexer(
        inputCol="reviewerID",
        outputCol="intReviewer"
        )
    productIndexer = StringIndexer(
        inputCol="asin",
        outputCol="intProduct"
        )
    pipeline = Pipeline(stages=[reviewerIndexer, productIndexer])
    pipelineModel = pipeline.fit(selectedDf)
    transformedFeatures = pipelineModel.transform(selectedDf)
    pipeline_model_name =  ./  + model_name +  pipeline 
    pipelineModel.save(pipeline_model_name)

该法典成功地挽救了档案系统的模型,但问题是,我可以把这一管道装上其他数据。 当我试图按守则装载模型时,我有这种错误。

        pipelineModel = PipelineModel.load(pipeline_model_name)

Traceback (most recent call last):
  File "/app/spark/load_recommendation_model.py", line 12, in <module>
    sa.load_model(pipeline_model_name, recommendation_model_name, user_id)
  File "/app/spark/sparkapp.py", line 142, in load_model
    pipelineModel = PipelineModel.load(pipeline_model_name)
  File "/spark/python/lib/pyspark.zip/pyspark/ml/util.py", line 311, in load
  File "/spark/python/lib/pyspark.zip/pyspark/ml/pipeline.py", line 240, in load
  File "/spark/python/lib/pyspark.zip/pyspark/ml/util.py", line 497, in loadMetadata
  File "/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1379, in first
ValueError: RDD is empty

问题是什么? 我如何解决这一问题?

最佳回答

我也有同样的问题。 问题在于,我正在忙于一组节点,但我没有利用共享档案系统来挽救我的模型。 因此,挽救经过培训的模型,从而节省了拥有其记忆中数据的计算结果。 当我想要装上数据时,我使用了我在储蓄过程中所用的同样方法。 在这种情形下,轮船主在《国际船舶和公司法》规定的道路上继续研究这一模式,但数据尚未完成。 因此,它声称,RDD(数据)是空的(如果你看所保存的模型的目录,你会发现只有SUCCESS文档,但对于装载模型而言,还需要另外两个<代码>-0000文档。

利用诸如民盟等共享档案系统,将解决这一问题。

问题回答

几年后,我也有同样的问题。 Hossein所说的话有助于解释根本原因,但是,如果你不肯定如何解决这一问题,那是我的工作。

确保利用外部档案途径储存文件,如S3途径。

from pyspark.ml import PipelineModel

model_path = "s3://my-bucket/my_project/model"

pipelineModel.save(model_path)

然后,你可以走这条模式,然后使用同样的道路。

from pyspark.ml import PipelineModel

model_path = "s3://my-bucket/my_project/model"

pipelineModel.load(model_path)

在当地节省费用,并将模型推到S3,t 避免日后装上模型所需的所有数据。 因此,我无法在当地节省费用,然后用S3途径装载。

PS:反之亦然。 fold 脚印 当地空运和装船工作,但直接通过S3进行装载。





相关问题
how to use phoenix5.0 with spark 3.0 preview

case "phoenix" =>{ outputStream.foreachRDD(rdd=>{ val spark=SparkSession.builder().config(rdd.sparkContext.getConf).getOrCreate() val ds=spark.createDataFrame(rdd,...

同一S3bucket使用多位证书

I'm using 2.1.1 with Hadoop 2.7.3 and I'm use data from different S3 sites in one管线。

热门标签