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