2016-03-15 46 views
0

我是Apache Spark的新手。我運行了示例文件夾中的示例ALS算法代碼。我給了一個csv文件作爲輸入。當我使用model.save(路徑)來保存模型時,它存儲在gz.parquet文件中。將als推薦模型導出到文件

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

現在我要存儲在文本或CSV文件生成的推薦模型使用它以外的火花。

我嘗試了以下功能存儲在一個文件中生成的模型,但它是無用的:

model.saveAsTextFile("path") 

請給我建議的方式來解決這個問題。

回答

0

事實證明saveAsTextFile()只在作品上slaves.Use collect()收集從站的數據,以便它可以保存在主站本地。可以找到解決方案here

0

免得說你的東西訓練的模型是這樣的:

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") 
+0

上面的代碼片段已經添加到代碼中了。我想將推薦模型保存在文本文件中。我想在另一個應用程序(Spark外部)中使用此建議文本文件。 –

+0

上面的代碼片段將模型保存在包含gz.parquet文件的文件夾中。 –

+0

您可以迭代所有訓練數據,爲數據的每個點提取預測並將其寫入文本文件。然後你需要一個方法來加載你的目標模型(scikit或其他)的預測。 –