hi,
i think i kind of found where did i do mistake, its not my mistake
actually... its document makers mistake.
In DEMO-TAPSTER , they had mentioned about appID, which suits the old
template. right now i discontinued following that doc. I' m using
https://predictionio.incubator.apache.org/templates/similarproduct/quickstart/
for further, until i get deserved output.


You may see appId in engine.json instead, which means you are using old
template. In this case, make sure the appId defined in the file match your *App
ID*. Alternatively, you can download the latest version of the template or
follow our upgrade instructions
<https://predictionio.incubator.apache.org/resources/upgrade/#upgrade-to-0.9.2>
to modify the template to use appName as parameter.



thanks VO for sending me the QuickStart link.
-DAN



On Thu, Jul 27, 2017 at 2:45 PM, Darshan A.N. <[email protected]>
wrote:

> VO,
> thanks, i ll look into it. i just sent u chat request, could u please
> accept it. i ll not bother u much.
>
> -DAN
>
> On Thu, Jul 27, 2017 at 2:41 PM, Vaghawan Ojha <[email protected]>
> wrote:
>
>> Hi Darshan,
>>
>> Thanks, yes I myself had undergone with so many difficulties during
>> installation so I had covered them in that article. Also I've been trying
>> to make one or two examples with ur in the pio docs.
>>
>> For your current error, you need to change the appName in engine.json and
>> rebuild your app again.
>>
>> On Thu, Jul 27, 2017 at 2:49 PM, Darshan A.N. <[email protected]>
>> wrote:
>>
>>> hi VO,
>>> thats really impressive article you have written. i need to install that
>>> DEMO-tapster. my repository is mysql, could you please help me solving it?
>>> thanks and cheers for ur article, i suppose it must be helpful for lot
>>> of noobies like me.
>>> -DAN
>>>
>>> On Wed, Jul 26, 2017 at 3:37 PM, Vaghawan Ojha <[email protected]>
>>> wrote:
>>>
>>>> Hi Darshan,
>>>>
>>>> I had written a brief article on medium to start from scratch, you
>>>> could follow that as well. https://medium.freecodec
>>>> amp.org/building-an-recommendation-engine-with-apache-predic
>>>> tion-io-ml-server-aed0319e0d8
>>>> here's the link. I myself had faced lots of problems while
>>>> installation, but pio and ur community is great for instant support. I've
>>>> included common errors and there troubleshooting as well.
>>>>
>>>> Hope this helps.
>>>>
>>>> Thanks
>>>> Vaghawan
>>>>
>>>> On Wed, Jul 26, 2017 at 3:37 PM, Tom Chan <[email protected]>
>>>> wrote:
>>>>
>>>>> darshan@darshu:~/PredictionIO/tapster-episode-similar/src/main/scala$
>>>>> pio train
>>>>>
>>>>> Can you try the command from the tapster-episode-similar directory?
>>>>>
>>>>> Tom
>>>>>
>>>>> On Jul 26, 2017 2:45 AM, "Darshan A.N." <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> hi team,
>>>>>> i am trying to install demo tapster. i  followed
>>>>>> http://predictionio.incubator.apache.org/demo/tapster/.     It took
>>>>>> more than a week to install predictionio.
>>>>>> now that i m installed the PIO, its throwing me error while running
>>>>>> the $pio build command. the error goes like this:
>>>>>> darshan@darshu:~/PredictionIO/tapster-episode-similar$ pio build
>>>>>> SLF4J: Class path contains multiple SLF4J bindings.
>>>>>> SLF4J: Found binding in [jar:file:/home/darshan/Predic
>>>>>> tionIO/lib/spark/pio-data-hdfs-assembly-0.11.0-incubating.ja
>>>>>> r!/org/slf4j/impl/StaticLoggerBinder.class]
>>>>>> SLF4J: Found binding in [jar:file:/home/darshan/Predic
>>>>>> tionIO/lib/pio-assembly-0.11.0-incubating.jar!/org/slf4j/imp
>>>>>> l/StaticLoggerBinder.class]
>>>>>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>>>>>> explanation.
>>>>>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>>>>>> [INFO] [Engine$] Using command '/home/darshan/PredictionIO/sbt/sbt'
>>>>>> at /home/darshan/PredictionIO/tapster-episode-similar to build.
>>>>>> [INFO] [Engine$] If the path above is incorrect, this process will
>>>>>> fail.
>>>>>> [INFO] [Engine$] Uber JAR disabled. Making sure
>>>>>> lib/pio-assembly-0.11.0-incubating.jar is absent.
>>>>>> [INFO] [Engine$] Going to run: /home/darshan/PredictionIO/sbt/sbt
>>>>>> package assemblyPackageDependency in /home/darshan/PredictionIO/tap
>>>>>> ster-episode-similar
>>>>>> [ERROR] [Engine$] [error] /home/darshan/PredictionIO/tap
>>>>>> ster-episode-similar/src/main/scala/DataSource.scala:63: not found:
>>>>>> value eventsDb
>>>>>> [ERROR] [Engine$] [error]     val viewEventsRDD: RDD[ViewEvent] =
>>>>>> eventsDb.find(
>>>>>> [ERROR] [Engine$] [error]                                         ^
>>>>>> [ERROR] [Engine$] [error] one error found
>>>>>> [ERROR] [Engine$] [error] (compile:compileIncremental) Compilation
>>>>>> failed
>>>>>> [ERROR] [Engine$] [error] Total time: 5 s, completed 26 Jul, 2017
>>>>>> 1:56:50 AM
>>>>>> [ERROR] [Engine$] Return code of build command:
>>>>>> /home/darshan/PredictionIO/sbt/sbt  package
>>>>>> assemblyPackageDependency is 1. Aborting.
>>>>>> [INFO] [Engine$] Looking for an engine...
>>>>>> [INFO] [Engine$] Found template-scala-parallel-simila
>>>>>> rproduct_2.10-0.1-SNAPSHOT.jar
>>>>>> [INFO] [Engine$] Found template-scala-parallel-simila
>>>>>> rproduct-assembly-0.1-SNAPSHOT-deps.jar
>>>>>> [INFO] [Engine$] Build finished successfully.
>>>>>> [INFO] [Pio$] Your engine is ready for training.
>>>>>>
>>>>>>
>>>>>> and the file DataSource.scala,
>>>>>>
>>>>>>
>>>>>> package org.example.similarproduct
>>>>>>
>>>>>> import org.apache.predictionio.controller.PDataSource
>>>>>> import org.apache.predictionio.controller.EmptyEvaluationInfo
>>>>>> import org.apache.predictionio.controller.EmptyActualResult
>>>>>> import org.apache.predictionio.controller.Params
>>>>>> import org.apache.predictionio.data.storage.Event
>>>>>> import org.apache.predictionio.data.store.PEventStore
>>>>>>
>>>>>> import org.apache.spark.SparkContext
>>>>>> import org.apache.spark.SparkContext._
>>>>>> import org.apache.spark.rdd.RDD
>>>>>>
>>>>>> import grizzled.slf4j.Logger
>>>>>>
>>>>>> case class DataSourceParams(appName: String) extends Params
>>>>>>
>>>>>> class DataSource(val dsp: DataSourceParams)
>>>>>>   extends PDataSource[TrainingData,
>>>>>>       EmptyEvaluationInfo, Query, EmptyActualResult] {
>>>>>>
>>>>>>   @transient lazy val logger = Logger[this.type]
>>>>>>
>>>>>>   override
>>>>>>   def readTraining(sc: SparkContext): TrainingData = {
>>>>>>
>>>>>>     // create a RDD of (entityID, User)
>>>>>>     val usersRDD: RDD[(String, User)] = PEventStore.aggregatePropertie
>>>>>> s(
>>>>>>       appName = dsp.appName,
>>>>>>       entityType = "user"
>>>>>>     )(sc).map { case (entityId, properties) =>
>>>>>>       val user = try {
>>>>>>         User()
>>>>>>       } catch {
>>>>>>         case e: Exception => {
>>>>>>           logger.error(s"Failed to get properties ${properties} of" +
>>>>>>             s" user ${entityId}. Exception: ${e}.")
>>>>>>           throw e
>>>>>>         }
>>>>>>       }
>>>>>>       (entityId, user)
>>>>>>     }.cache()
>>>>>>
>>>>>>     // create a RDD of (entityID, Item)
>>>>>>     val itemsRDD: RDD[(String, Item)] = PEventStore.aggregatePropertie
>>>>>> s(
>>>>>>       appName = dsp.appName,
>>>>>>       entityType = "item"
>>>>>>     )(sc).map { case (entityId, properties) =>
>>>>>>       val item = try {
>>>>>>         // Assume categories is optional property of item.
>>>>>>         Item(categories = properties.getOpt[List[String]
>>>>>> ]("categories"))
>>>>>>       } catch {
>>>>>>         case e: Exception => {
>>>>>>           logger.error(s"Failed to get properties ${properties} of" +
>>>>>>             s" item ${entityId}. Exception: ${e}.")
>>>>>>           throw e
>>>>>>         }
>>>>>>       }
>>>>>>       (entityId, item)
>>>>>>     }.cache()
>>>>>>
>>>>>>     // get all "user" "view" "item" events
>>>>>>     val viewEventsRDD: RDD[ViewEvent] = eventsDb.find(
>>>>>>       appId = dsp.appId,
>>>>>>       entityType = Some("user"),
>>>>>>       eventNames = Some(List("like")),
>>>>>>       // targetEntityType is optional field of an event.
>>>>>>       targetEntityType = Some(Some("item")))(sc)
>>>>>>       // eventsDb.find() returns RDD[Event]
>>>>>>       .map { event =>
>>>>>>         val viewEvent = try {
>>>>>>           event.event match {
>>>>>>             case "like" => ViewEvent(
>>>>>>               user = event.entityId,
>>>>>>               item = event.targetEntityId.get,
>>>>>>               t = event.eventTime.getMillis)
>>>>>>             case _ => throw new Exception(s"Unexpected event ${event}
>>>>>> is read.")
>>>>>>           }
>>>>>>         } catch {
>>>>>>           case e: Exception => {
>>>>>>             logger.error(s"Cannot convert ${event} to ViewEvent." +
>>>>>>               s" Exception: ${e}.")
>>>>>>             throw e
>>>>>>           }
>>>>>>         }
>>>>>>         viewEvent
>>>>>>       }.cache()
>>>>>>
>>>>>>     new TrainingData(
>>>>>>       users = usersRDD,
>>>>>>       items = itemsRDD,
>>>>>>       viewEvents = viewEventsRDD
>>>>>>     )
>>>>>>   }
>>>>>> }
>>>>>>
>>>>>> case class User()
>>>>>>
>>>>>> case class Item(categories: Option[List[String]])
>>>>>>
>>>>>> case class ViewEvent(user: String, item: String, t: Long)
>>>>>>
>>>>>> class TrainingData(
>>>>>>   val users: RDD[(String, User)],
>>>>>>   val items: RDD[(String, Item)],
>>>>>>   val viewEvents: RDD[ViewEvent]
>>>>>> ) extends Serializable {
>>>>>>   override def toString = {
>>>>>>     s"users: [${users.count()} (${users.take(2).toList}...)]" +
>>>>>>     s"items: [${items.count()} (${items.take(2).toList}...)]" +
>>>>>>     s"viewEvents: [${viewEvents.count()}]
>>>>>> (${viewEvents.take(2).toList}...)"
>>>>>>   }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> while training, it gives  me following error,
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> darshan@darshu:~/PredictionIO/tapster-episode-similar/src/main/scala$
>>>>>> pio train
>>>>>> SLF4J: Class path contains multiple SLF4J bindings.
>>>>>> SLF4J: Found binding in [jar:file:/home/darshan/Predic
>>>>>> tionIO/lib/spark/pio-data-hdfs-assembly-0.11.0-incubating.ja
>>>>>> r!/org/slf4j/impl/StaticLoggerBinder.class]
>>>>>> SLF4J: Found binding in [jar:file:/home/darshan/Predic
>>>>>> tionIO/lib/pio-assembly-0.11.0-incubating.jar!/org/slf4j/imp
>>>>>> l/StaticLoggerBinder.class]
>>>>>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>>>>>> explanation.
>>>>>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>>>>>> [WARN] [Template$] /home/darshan/PredictionIO/tap
>>>>>> ster-episode-similar/src/main/scala/template.json does not exist.
>>>>>> Template metadata will not be available. (This is safe to ignore if you 
>>>>>> are
>>>>>> not working on a template.)
>>>>>> Exception in thread "main" java.io.FileNotFoundException:
>>>>>> /home/darshan/PredictionIO/tapster-episode-similar/src/main/scala/engine.json
>>>>>> (No such file or directory)
>>>>>>     at java.io.FileInputStream.open0(Native Method)
>>>>>>     at java.io.FileInputStream.open(FileInputStream.java:195)
>>>>>>     at java.io.FileInputStream.<init>(FileInputStream.java:138)
>>>>>>     at scala.io.Source$.fromFile(Source.scala:90)
>>>>>>     at scala.io.Source$.fromFile(Source.scala:75)
>>>>>>     at org.apache.predictionio.tools.console.Console$.getEngineInfo
>>>>>> (Console.scala:724)
>>>>>>     at org.apache.predictionio.tools.RunWorkflow$.runWorkflow(RunWo
>>>>>> rkflow.scala:54)
>>>>>>     at org.apache.predictionio.tools.commands.Engine$.train(Engine.
>>>>>> scala:186)
>>>>>>     at org.apache.predictionio.tools.console.Pio$.train(Pio.scala:85)
>>>>>>     at org.apache.predictionio.tools.console.Console$$anonfun$main$
>>>>>> 1.apply(Console.scala:626)
>>>>>>     at org.apache.predictionio.tools.console.Console$$anonfun$main$
>>>>>> 1.apply(Console.scala:611)
>>>>>>     at scala.Option.map(Option.scala:145)
>>>>>>     at org.apache.predictionio.tools.console.Console$.main(Console.
>>>>>> scala:611)
>>>>>>     at org.apache.predictionio.tools.console.Console.main(Console.s
>>>>>> cala)
>>>>>>
>>>>>>
>>>>>>
>>>>>> i tried almost all the things, but could not find the proper
>>>>>> solution. please help me...
>>>>>> i know you may feel bit odd about this mail, but in need of your help.
>>>>>>
>>>>>> thanks,
>>>>>>
>>>>>>
>>>>>> -DAN
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to