如何将Model的结果保存到文本文件?

时间:2016-03-13 10:45:28

标签: scala apache-spark apache-spark-mllib

我正在尝试将模型生成的频繁项目集保存到文本文件中。该代码是Spark ML库中FPGrowth示例的一个示例。

直接在模型上使用saveAsTextFile写入RDD位置而不是实际值。

import org.apache.spark.mllib.fpm.FPGrowth
import org.apache.spark.rdd.RDD

val data = sc.textFile("/home/ponny/Freq")
val data1 = sc.textFile("/home/ponny/Scala_Examples/test.txt")
val transactions: RDD[Array[String]] = data.map(s => s.trim.split(' '))
val tdata: RDD[Array[String]] = data1.map(s => s.trim.split(' '))

val fpg = new FPGrowth().setMinSupport(0.0).setNumPartitions(10)
val model = fpg.run(transactions)

model.freqItemsets.collect().foreach { itemset =>
  println(itemset.items.mkString("[", ",", "]") + ", " + itemset.freq)
}
model.freqItemsets.saveAsTextFile("/home/ponny/Freq_op")

文本文件中生成的输出类似于

org.apache.spark.mllib.fpm.FPGrowth$FreqItemset@5b27c9
org.apache.spark.mllib.fpm.FPGrowth$FreqItemset@2a7acd
org.apache.spark.mllib.fpm.FPGrowth$FreqItemset@d4d011
org.apache.spark.mllib.fpm.FPGrowth$FreqItemset@1fd4350

请指导。

1 个答案:

答案 0 :(得分:3)

与打印值的方式完全相同。首先构建所需的输出字符串:

<span class="emojitext ellipsify" dir="ltr" data-reactid=".0.0:$main.4.3.0.0.0.$393382905560@c=1us.$393382905560@c=1us.0.1.1.0.$status">
    How are you?
</span>