皮尔逊相关系数mapreduce实现

博客给出了MapReduce框架的代码示例。在map函数中,对矩阵行数据处理生成reduce的键值对;在reduce函数里,对传入的值进行计算,最后使用PersonCompution类处理并输出结果,展示了MapReduce在数据处理上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mapreduce框架

/key 由mapreduce生成,可忽略

value 矩阵中的一行

map(key,value){

  double [] arr =line.split(",");

 int size = arr.length;

 for(int i =0; i<size-1;i++){

    for (int j =i+1; j<size;j++){

           reducekey=PairOfLongs(i,j);

            reducevalue=PairOfDoubles(arr[i],arr[j]);

            emit(reducekey,reducevalue);

           }

    }

}

reduce(PairOfLongs key, Iterable<PairOfDoubles> values) {

  double x=0.0d

  double y=0.0d

double xx=0.0d

 double yy=0.0d

 double xy=0.0d;

double n =0.0d;

  for( PairOfDouble pair :values){

       x +=pair.getLeftElement();

       y +=pair.getRightElement();

         xx +=Math.pow(pair.getLeftElement(),2.0d);

       yy +=Math.pow(pair.getRightElement(),2.0d);

         xy +=(pair.getLeftElement()*pair.getRightElement());

         n +=1.0d;

    }

  PersonCompution person = new PersonCompution(x,y,xx,yy,xy,n);

 emit(key,person);

 }

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值