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编写的编译错误保存模型的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse Scala IDE 代码未编译

Scala 错误:线程“主”org.apache.spark.SparkException 中的异常:任务不可序列化

在 Bash 脚本中执行 Apache Spark (Scala) 代码

eclipse编写scala应用运行在spark集群上

forEach Spark Scala 中的错误:值选择不是 org.apache.spark.sql.Row 的成员

Scala 错误:对象 XML 不是 Apache Spark 上包 org.json 的成员