Spark求平均值的三种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark求平均值的三种方法相关的知识,希望对你有一定的参考价值。

方法一:

利用groupByKey

//求平均 方法一: groupByKey
textFile.mapToPair(line -> new Tuple2<>(line.split(" ")[0], Integer.parseInt(line.split(" ")[1])))
.groupByKey()
.mapToPair(info ->
double sum = 0;
double count = 0;
Iterator<Integer> it = info._2().iterator();
while (it.hasNext())
sum += it.next();
count++;

double ave = sum / count;
return new Tuple2<>(info._1(), ave);
)
.collect()
.forEach(System.out::println);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
参考技术A 求平均值的方法

求字符串长度函数实现的三种方法

/*
Date: 10/03/19 12:49
Description: 求字符串长度函数实现的三种方法
*/


#include<stdio.h>


int strlen1(char *s);
int strlen2(char *s);
int strlen3(char *s);


int main(void)
{
  char str[]="The function to test my length.";
  printf("The length1 is:%d ",strlen1(str));
  printf("The length2 is:%d ",strlen2(str));
  printf("The length3 is:%d ",strlen3(str));

}


int strlen1(char *s)//设置计数器
{
  int count=0;
  while(*s!=‘‘)
  {
    s++;
    count++;
  }
  return count;
}
int strlen2(char *s)//指针减指针的方法
{
  char *p=s;
  while(*p!=‘‘)
  {
    p++;
  }
  return p-s;
}
int strlen3(char *s)//利用函数递归的方法
{
  if(*s==‘‘)
    return 0;
  else
    return 1+strlen3(s+1);
}

运行结果:

  技术图片

以上是关于Spark求平均值的三种方法的主要内容,如果未能解决你的问题,请参考以下文章

Spark求平均成绩–Scala

大数据入门之Spark快速入门及导入数据,求平均值

C语言用数组,函数,指针三种方法求10个同学的平均成绩

c语言 求平均数有啥函数?

OPENCV求取一副图片RGB三通道均值

Spark Graphx图计算案例实战之aggregateMessages求社交网络中的最大年纪追求者和平均年纪!