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求平均值的三种方法的主要内容,如果未能解决你的问题,请参考以下文章