spark scala Apriori
2016-08-18 10:36
337 查看
val mydata = Array(Array(1,3,4,5),Array(2,3,5),Array(1,2,3,4,5),Array(2,3,4,5)) val pamydata = sc.parallelize(mydata) val C1 = pamydata.flatMap(_.toSet).distinct().collect().map(Set(_)) val D = mydata.map(_.toSet) val D_bc = sc.broadcast(D) val length = mydata.length var limit = 0.70 def f1(a:Set[Int],B:Array[Set[Int]],length:Int,limit:Double) = {if(B.filter(b => a.subsetOf(b)).size/length.toDouble >= limit)(a,B.filter(b => a.subsetOf(b)).size/length.toDouble)} var suppdata = sc.parallelize(C1).map(f1(_,D_bc.value,4,limit)).filter(_.!=(())).collect() var L = Array[Array[Set[Int]]]() val L1 = suppdata.map(_ match{case a:Tuple2[_,_] => a._1 match{ case b:Set[_] => b.asInstanceOf[Set[Int]]}}) L = L :+ L1 var k=2 while(L(k-2).length>0){ var CK = Array[Set[Int]]() for((var1,index) <- L(k-2).zipWithIndex;var2 <- L(k-2).drop(index+1) if var1.take(k-2).equals(var2.take(k-2))){CK= CK :+ (var1|var2)} val suppdata_temp = sc.parallelize(CK).map(f1(_,D_bc.value,4,limit)).filter(_.!=(())).collect() suppdata = suppdata :+ suppdata_temp L = L :+ suppdata_temp.map(_ match{case a:Tuple2[_,_] => a._1 match{ case b:Set[_] => b.asInstanceOf[Set[Int]]}}) k += 1 } L = L.filter(_.nonEmpty) L suppdata这里只写了挖掘频繁项集,发现关联规则的代码可以参考pyspark的版本来写
相关文章推荐
- 获取系统URL访问的前三名(通过Scala方式实现/通过Spark方式实现),Spark将URL访问日志进行分类并通过自定义Partitioner的方式将文件写入到不同分区上
- scala-45:Scala中Context Bounds代码实战及其在Spark中的应用源码解析
- Scala + Spark +Maven之Helloworld
- 通过IDEA搭建scala开发环境开发spark应用程序
- Spark Streaming 报错:NoSuchMethodError: scala.Predef$.ArrowAssoc
- 9-spark之Scala语言
- spark 官方动手练习一:Introduction to the Scala Shell
- Spark Scala 实现二次排序和相加
- spark: scala实现worldcount
- spark和scala插件中scala版本不同
- 安装SPARK和SCALA
- spark-shell与scala生成parquet文件
- dataframe 数据统计可视化---spark scala 应用
- Spark:用Scala和Java实现WordCount
- 编写第一个用scala写的spark任务,用sbt打包成jar,并单机模式下运行
- Spark---Datasource(JSON)---Scala
- Spark基础-Scala语句解析
- 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析
- Hadoop+Spark+Scala+R+PostgreSQL+Zeppelin安装过程-Spark的安装配置测试和Scala的安装配置yuan
- Spark 入门之 Scala 语言解释及示例讲解