【问题标题】:export als recommendation model to a file将 als 推荐模型导出到文件
【发布时间】:2016-03-27 02:18:27
【问题描述】:

我是 Apache Spark 的新手。我运行了示例文件夹中的示例 ALS 算法代码。我给了一个 csv 文件作为输入。当我使用 model.save(path) 保存模型时,它存储在 gz.parquet 文件中。

When I tried to open this file, I get these errors

现在我想将生成的推荐模型存储在文本或 csv 文件中,以便在 Spark 之外使用。

我尝试了以下函数将生成的模型存储在文件中,但没有用:

model.saveAsTextFile("path")

请建议我解决这个问题的方法。

【问题讨论】:

    标签: scala csv apache-spark apache-spark-mllib


    【解决方案1】:

    免得说你已经用这样的东西训练了你的模型:

    val model = ALS.train(ratings, rank, numIterations, 0.01)
    

    你所要做的就是:

    import org.apache.spark.mllib.recommendation.ALS
    import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
    import org.apache.spark.mllib.recommendation.Rating    
    // Save
    model.save(sc, "yourpath/yourmodel")
    // Load Model
    val sameModel = MatrixFactorizationModel.load(sc, "yourpath/yourmodel")
    

    【讨论】:

    • 上面的sn-p已经加在代码里了。我想将推荐模型保存在文本文件中。我想在另一个应用程序(Spark 之外)中使用这个推荐文本文件。
    • 以上代码 sn -p 将模型保存在包含 gz.parquet 文件的文件夹中。
    • 您可以遍历所有训练数据,为数据的每个点提取预测并将其写入文本文件。然后,您将需要一种方法来在您的目标模型(scikit 或其他)中加载该预测。
    • 对训练数据进行预测后,当我尝试将数据存储在文本文件中时,文本文件只包含目录的路径。预测后产生的模型是RDD格式。我想将此 RDD 以文本格式存储在文本文件中
    • 如果问题是将RDD写入TextFile,你可以这样做:stackoverflow.com/questions/31666361/…
    【解决方案2】:

    事实证明saveAsTextFile() 仅适用于从站。使用collect() 从从站收集数据,以便可以将其本地保存在主站上。解决办法可以找here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 2021-05-22
      • 2020-07-04
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      相关资源
      最近更新 更多