Scala、Apache Spark编写的编译错误保存模型
Posted
技术标签:
【中文标题】Scala、Apache Spark编写的编译错误保存模型【英文标题】:Compilation error saving model written in Scala, Apache Spark 【发布时间】:2016-09-08 15:45:58 【问题描述】:我正在运行 Apache Spark 提供的示例源代码来创建 FPGrowth 模型。我想保存模型以备将来使用,因此我写了这段代码的最后一行(model.save):
import org.apache.spark.SparkConf, SparkContext
import org.apache.spark.mllib.fpm.FPGrowth
import org.apache.spark.mllib.util._
import org.apache.spark.rdd.RDD
import org.apache.spark.sql._
import java.io._
import scala.collection.mutable.Set
object App
def main(args: Array[String])
val conf = new SparkConf().setAppName("prediction").setMaster("local[*]")
val sc = new SparkContext(conf)
val data = sc.textFile("FPFeatureSeries.txt")
val transactions: RDD[Array[String]] = data.map(s => s.trim.split(' '))
val fpg = new FPGrowth()
.setMinSupport(0.1)
.setNumPartitions(10)
val model = fpg.run(transactions)
val minConfidence = 0.8
model.generateAssociationRules(minConfidence).collect().foreach rule =>
if(rule.confidence>minConfidence)
println(
rule.antecedent.mkString("[", ",", "]")
+ " => " + rule.consequent .mkString("[", ",", "]")
+ ", " + rule.confidence)
model.save(sc, "FPGrowthModel");
问题是我得到一个编译错误:value save is not a member of org.apache.spark.mllib.fpm.FPGrowth
我已经尝试包含库并从文档中复制确切的示例,但我仍然遇到同样的错误。
我正在使用 Spark 2.0.0 和 Scala 2.10。
【问题讨论】:
【参考方案1】:我有同样的问题。 用这个来保存模型
sc.parallelize(Seq(model), 1).saveAsObjectFile("path")
并加载模型
val linRegModel = sc.objectFile[LinearRegressionModel]("path").first()
这可能会有所帮助.. what-is-the-right-way-to-save-load-models-in-spark-pyspark
【讨论】:
谢谢。但是对于加载一个 FPGrowth 模型,这将是 objectFile 的正确类型?以上是关于Scala、Apache Spark编写的编译错误保存模型的主要内容,如果未能解决你的问题,请参考以下文章
Scala 错误:线程“主”org.apache.spark.SparkException 中的异常:任务不可序列化
在 Bash 脚本中执行 Apache Spark (Scala) 代码