基于Spark on Yarn的apriori算法java实现

一  前言

处理一个大数据集,找出其中的强关联规则,本文基于spark使用java语言实现了apriori算法,算法已经通过测试,后边附带一个测试实验及运行结果。

二  apriori算法描述

apriori是一种经典的数据挖掘算法,可以挖掘出数据库中哪些物品经常一起出现,满足最小支持度和最小置信度的的规则为强关联规则。因此,算法需要找出所有的强关联规则,从而为实际提供决策或者预测未来的结果。apriori算法使用逐层搜索的迭代思想,第k频繁项集用于找出第(k+1)频繁项集,依次类推,直到找出所有的频繁项集。最后从已经找出的这些频繁项集中进一步找出所有强关联规则。本文实现的算法主要完成找出所有的频繁项集,这一步也是apriori算法最重要的。

三  算法实现

package org.min.apriori;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFlatMapFunction;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import org.apache.spark.broadcast.Broadcast;


import scala.Tuple2;
import scala.collection.mutable.ArrayBuffer;


/**
 * 
 * @author ShiMin
 * @date   2015/10/13
 * @description APriori algorithm runs on spark in java. 
 *
 */
public class FrequentItemset
{
public static int SUPPORT_DEGREE = 4;//the support of APriori algorithm
public static int TRANSACTION_NUM = 25;//the number of transaction
public static String SEPARATOR = " ";//line separator
public static int NOFITEMS = 4;//the number of items in itemSet


@SuppressWarnings("serial")
public static void main(String[] args)
{
Logger.getLogger("org.apache.spark").setLevel(Level.OFF);
args = new String[]{"hdfs://master:9000/data/input/wordcounts.t
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值