在Heroku上训练PredictionIO导致需求失败:PreparedData中的viewEvents不能为空

时间:2019-02-23 14:26:50

标签: apache-spark predictionio recommender-systems

我正在遵循https://www.jamesward.com/2016/06/14/machine-learning-on-heroku-with-predictionio/中的指南 并且在运行时: heroku run -a <YOUR HEROKU APP NAME> train我遇到以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: viewEvents in PreparedData cannot be empty. Please check if DataSource generates TrainingData and Preprator generates PreparedData correctly.
    at scala.Predef$.require(Predef.scala:233)
    at ALSAlgorithm.train(ALSAlgorithm.scala:44)
    at ALSAlgorithm.train(ALSAlgorithm.scala:38)
    at io.prediction.controller.P2LAlgorithm.trainBase(P2LAlgorithm.scala:46)
    at io.prediction.controller.Engine$$anonfun$18.apply(Engine.scala:689)
    at io.prediction.controller.Engine$$anonfun$18.apply(Engine.scala:689)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at io.prediction.controller.Engine$.train(Engine.scala:689)
    at io.prediction.controller.Engine.train(Engine.scala:174)
    at io.prediction.workflow.CoreWorkflow$.runTrain(CoreWorkflow.scala:65)
    at TrainApp$delayedInit$body.apply(TrainApp.scala:72)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
    at scala.App$class.main(App.scala:71)
    at TrainApp$.main(TrainApp.scala:7)
    at TrainApp.main(TrainApp.scala)

我看到数据存在于postgre数据库中。

任何人都拥有或知道如何“请检查DataSource是否生成了TrainingData,而Preprator是否正确生成了PreparedData。” ?

谢谢!

0 个答案:

没有答案