Hadoop/spark 购物篮分析

Hadoop  Mapreduce 形式化映射器//key 交易ID 忽略//value 交易商品(i1,i2,...in)map(key,value){          (s1,s2,...sn)=sort(i1,i2,...in);             List<Tuple2<si,sj>> listofpairs=Combinations...
摘要由CSDN通过智能技术生成

Hadoop  Mapreduce 

形式化映射器

//key 交易ID 忽略

//value 交易商品(i1,i2,...in)

map(key,value){

          (s1,s2,...sn)=sort(i1,i2,...in);

             List<Tuple2<si,sj>> listofpairs=Combinations.generateCombinations(s1,s2,...sn)//combinnations 是一个java工具类,为给定的商品列表生成购物篮商品组合(2项)

        for(Tuple2<si,sj>pair : listofpairs){

                    emit([Tuple2<si,sj>,1]);}

}

归约器

//key Tuple2<si,sj>

//value  list<iteger>

reduce(Tuple2<si,sj> key, List<iteger> values){

        integer sum=0;

         for (integer i :values){

                             sum +=i;}

           emit(key,sum);}

 

 

MBAMapper

public class MBAMapper extends Mapper<LongWritable, Text,Text,IntWritable>{

         public static final int DEFAULT_NUMBER_OF_PAIRS = 2;

      //输出key2

      private static final Text reducekey = new Text();

        // 输出value2

       private static final IntWritable Number_ONE=new IntWritable(1);

      int numberofpairs

       protected void setup(Context context)

                 throws IOException, InterruptedException{

                       this.numberofpairs=context.getConfiguration().getInt("number of pair", DEFAULT_NUMBER_OF_PAIRS);}

       public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{

                           String line =value.toString().trim();

                            List<String> items = convertItemsToList(line);

                            if ((items==null)||(items.isEmpty())){ return;}

                             generateMapperOutput(numberOfPairs, items,context);}

        private static List<String> convertItemsToList(String line){

                       ...}

        private void generateMapperOutput(){...}

 }

 

spark 关联规则

public class FindAssoci

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值