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>运行错误解决方案

士兵大战外星人Soldier&nbsp;vs&amp;nb…

vs Aliens v1.1.2 (Premium)[已付费]" TITLE="士兵大战外星人Soldier vs Aliens v1.1.2 (Premium)[已付费]" /> vs Ali...

nginx配置文件各参数详解&nbsp;&amp;nb…

个人官方网站 :点击进入 高层的配置 nginx.conf文件中,Nginx中有少数的几个高级配置在模块部分之上。 user www-data; pid /var/run/nginx.pid...
  • lyp0715
  • lyp0715
  • 2016年01月21日 10:21
  • 149

GFT:&nbsp;块环链实际用途很多,&amp;nb…

2016年,块环链技术将如何发展,进入主流金融领域的情况如何,GFT的Robert Henry发表了自己的看法。   GFT是一家针对投资银行领域的商业、设计和技术咨询解决方案提供商,在全球有近40...

东木书屋CqiaoBBS论坛&amp;amp;nbsp;

  • 2002年10月12日 00:00
  • 117KB
  • 下载

内部网开发框架&amp;amp;nbsp;

  • 2002年09月24日 00:00
  • 706KB
  • 下载

狂野飙车8&nbsp;极速凌云Asphalt&amp;n…

极速凌云Asphalt 8 v1.0.0免验证[无限金币]" TITLE="狂野飙车8 极速凌云Asphalt 8 v1.0.0免验证[无限金币]" /> 极速凌云Asphalt 8 v1.0.0...

易得多用户论坛V1.5&amp;amp;nbsp;

  • 2002年10月12日 00:00
  • 375KB
  • 下载

oracle&nbsp;的服务器进程(PMON,&amp;…

PMON PMON,进程监视。PMON主要有3个用途: 1,在进程非正常中断后,做清理工作。例如:dedicated server失败了或者因为一些原因被杀死,这是PMON的工作分两种。第一,是对d...
  • wxwpxh
  • wxwpxh
  • 2016年01月17日 16:50
  • 763

宽字符集(unicode)操作函数&amp;nbsp…

宽字符集(unicode)操作函数 (转) 2007-11-02 16:40   字符分类:   宽字符函数 普通C函数 描述 iswalnum() isalnum() 测试字...

Android&nbsp;开发人员必须掌握的&amp;…

Android SDK 本身包含很多帮助开发人员设计、开发、测试和发布 Android 应用的工具,在本文中,我们将讨论 10 个最常用的工具。 #1: Eclipse ADT Eclipse A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark&nbsp;mlib&nbsp;FPGrowth&amp;nb…
举报原因:
原因补充:

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