2015-10-21 1 views

Répondre

0

Je trouve que PredictionIO déjà en charge cette question:

Ceci est mon code pseudo:

 def readEventTime(procTime : String) : Option[DateTime] = { 
      Option(if (procTime == null || (procTime != null && procTime == "")) null else DateTimeFormat.forPattern("yyyyMMddHHmmss").parseDateTime(procTime)) 
     } 
     val itemsViewRDD: RDD[(String, Item)] = PEventStore.find(
      appName = dsp.appName, 
      startTime = readEventTime(dsp.startTime), 
      untilTime = readEventTime(dsp.untilTime) 
     )(sc).map ... 

Cordialement.

0

Nous travaillons sur une méthode plus générale pour résoudre ce problème, mais il y a un moteur dans la branche expérimentale qui conservera une période de données d'événement dans l'EventStore et rejettera le reste. C'est la façon la plus performante de faire l'entraînement. Je veux dire que vous devez exécuter ce moteur périodiquement. https://github.com/PredictionIO/PredictionIO/tree/develop/examples/experimental/scala-cleanup-app

Ceci supprimera tous les anciens événements, y compris $ set, soyez vigilants. Si vous définissez une propriété et que cet événement est supprimé, la propriété n'est plus définie. À l'avenir, nous prévoyons de prendre en charge un TTL pour les événements afin que le magasin d'événements lui-même élimine les événements automatiquement. Nous allons également stocker les propriétés dans un magasin mutable pour les supprimer du flux d'événements. Pour l'instant, utilisez le moteur de nettoyage.