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

How to save results of Model to text file?

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

请指导。

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

model.freqItemsets
  .map { fi => s"""[${fi.items.mkString(",")}], ${fi.freq}""" }
  .saveAsTextFile(path)