Spark mlib FPGrowth&nb…

原创 2016年08月29日 12:51:33

MLlib’s FP-growth implementation takes the following (hyper-)parameters:

  • minSupport: the minimum support for an itemset to be identified as frequent. For example, if an item appears 3 out of 5 transactions, it has a support of 3/5=0.6.
  • numPartitions: the number of partitions used to distribute the work.

spark mlib 的官方FPGrowth运行出错。
这是序列输出可能引起的错误,spark采用的kryo序列化方式比JavaSerializer方式更快,但是在1.4版本的spark上会产生错误,故解决方案是,要么在spark-defaults.conf中替换,要么只运行中直接替换,

所以加上下面蓝色这句好就好了
val conf = new SparkConf().setAppName("SimpleFPGrowth").set("spark.serializer", "org.apache.spark.serializer.JavaSerializer")



import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.mllib.fpm._
import org.apache.spark.rdd.RDD
// $example off$

object FPGrowth {
  def main(args: Array[String]) {
    // 屏蔽不必要的日志显示在终端上
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
 
    // 设置运行环境
    val conf = new SparkConf().setAppName("SimpleFPGrowth").set("spark.serializer", "org.apache.spark.serializer.JavaSerializer")
    val sc = new SparkContext(conf)

    // $example on$
    val data = sc.textFile("xrli/sample_fpgrowth.txt")

    val transactions: RDD[Array[String]] = data.map(s => s.trim.split(' '))

    val fpg = new FPGrowth()
      .setMinSupport(0.5)
      .setNumPartitions(10)
    val model = fpg.run(transactions)

    model.freqItemsets.collect().foreach { itemset =>
      println(itemset.items.mkString("[", ",", "]") + ", " + itemset.freq)
    }

    val minConfidence = 0.8
    model.generateAssociationRules(minConfidence).collect().foreach { rule =>
      println(
        rule.antecedent.mkString("[", ",", "]")
          + " => " + rule.consequent .mkString("[", ",", "]")
          + ", " + rule.confidence)
    }
    // $example off$
  }
}
// scalastyle:on println}





//sample_fpgrowth.txt

//r z h k p
//z y x w v u t s
//s x o n r
//x z y m t s q e
//z
//x z y r q t p

数据集中每一行就是一项,以z为例,z在5项中都出现了,,所以支持度为5/6, itemset.freq打印了频度5。

model.generateAssociationRules(minConfidence).collect().foreach 
这是生成规则,如果数据集很大的话,推荐不要collect().  ,这样可以提升运行速度。

rule.antecedent 前提
rule.consequent结果


Spark <wbr>mlib <wbr>FPGrowth <wbr>运行错误解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

&nbsp|&quot|&amp|&lt|&gt等html字符转义

提示:请直接按CTRL+F搜索您要查找的转义字符。 常用表: No. 文字表記 10進表記 16進表記 文字   ...

&nbsp|&quot|&amp|&lt|&gt等html字符转义

source: http://blog.csdn.net/wusuopubupt/article/details/8817826 本文地址:http://blog.csdn.net/wu...

&nbsp|&quot|&amp|&lt|&gt等html字符转义

原文地址:http://blog.csdn.net/wusuopubupt/article/details/8817826 by wusuopubupt 提示:请直接按CTRL+F搜索您要查找...

字符集和字符编码(Charset&nbsp;&amp;…

字符集和字符编码(Charset & Encoding) 2011-05-03 11:37 by 吴秦, 63514 阅读, 36 评论, 收藏, 编辑 ——每个软件开发人员应该无条件掌握的知识!...

&nbsp|&quot|&amp|&lt|&gt等html字符转义

请直接按CTRL+F搜索您要查找的转义字符。 常用表: No. 文字表記 10進表記 16進表記 文字   Comment 001 &quot; &#34...

HTML中&nbsp; &ensp; &emsp; &thinsp;等6种空白空格的区别

HTML中&nbsp; &ensp; &emsp; &thinsp;等6种空白空格的区别 HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格(&nbsp;...

iOS 2.3.7 Your app name to be displayed on the&nbsp

复制原文只为自己查找方便(  原文 ) 苹果审核条款 惊!苹果再次加强审核力度,众App纷纷止步应用标题 近日,在和开发者交流的过程中,我们得到了以下反馈:App ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)