Wenn Sie nur die freqSequences
speichern möchten, einfach nicht nennen collect
an diesem RDD und Sie es in einer Textdatei speichern können:
model.freqSequences().saveAsTextFile("path")
jedoch, die vielleicht nicht so nützlich sein, da sie das Ergebnis der toString
auf jedem sparen von die RDD-Datensätze (vom Typ PrefixSpan.FreqSequence[Item]
), die später möglicherweise nicht so einfach geparst werden. Also - Sie diese Datensätze in Strings formatieren können selbst sie in einem Format zu schreiben, können Sie verwenden:
// Format an array using brackets, if that's how you want it;
// You can implement whatever format you want...
def format[T](t: T): String = t match {
case a: Array[_] => a.map(t => s"[${format(t)}]").mkString(",")
case _ => t.toString
}
model.freqSequences()
.map(fs => s"${format(fs.sequence)}, ${fs.freq}")
.saveAsTextFile("path")
Schließlich, wenn Sie diese Ergebnisse, um sind Speicher dieses Modell anzuwenden Funken mit später, mit save
direkt betrachten:
model.save(sc, "path")
, die später unter Verwendung geladen werden können:
PrefixSpanModel.load(sc, "path")
Sie diese getaggt mit Scala, aber Ihr Code sieht eher aus wie 'python' .. –
ja, ich kopiert Pytho n Code, aber bevorzugte Scala-Lösung. Vielen Dank! – icecream