我正在尝试将模型生成的频繁项目集保存到文本文件中。该代码是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
请指导。
答案 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>