Spark练习-统计不同性别的年龄总和,统计不同性别不同年龄的年龄平均值

目录

统计不同性别的年龄总和,最大值,最小值,平均值

计算不同性别不同年龄的年龄平均值


统计不同性别的年龄总和,最大值,最小值,平均值

python 复制代码
from pyspark import  SparkContext
sc = SparkContext()


# 1- 读取hdfs中的学生数据
rdd = sc.textFile('hdfs://node1:8020/data/student.txt')

# 2- 使用转化算子进行数据处理
# map中的lambda表达式,必须定义一个参数,用来接收rdd中的元素数据, 注意:x参数如何处理,要看x接收的数据类型
rdd2 = rdd.map(lambda x:x.split(','))

# 将转换后的kv进行分组,把分组的字段作为key值
rdd3 = rdd2.map(lambda x:(x[2],x))
# 使用groupbykey方法,按照key进行分组

rdd4 = rdd3.groupByKey()  # ('F', <pyspark.resultiterable.ResultIterable object at 0x7f7fea109760>)
# 需要使用mapvalue转化分组后的数据
rdd5 = rdd4.mapValues(lambda x:list(x))


## todo 统计不同性别的年龄总和 最大值 最小值 平均值
# 将需要计算的数据转为kv结构   分组的字段是key值  聚合数据是value值
rdd6 = rdd2.map(lambda x:(x[2],int(x[3])))

# 使用reduceBykey方式进行聚合计算  会将相同key值的数据先合并,然后在聚合计算
# 聚合计算的算子,lambda x,y 需要结构两个参数
# 计算总和
rdd7 = rdd6.reduceByKey(lambda x,y:x+y)  # 使用有局限性,无法进行平均数  最大值 最小值 数量  总数/数量

# 计算平均值
rdd8 = rdd6.groupByKey().mapValues(lambda x:sum(list(x)) / len(list(x)))

# 计算最大值
rdd9 = rdd6.groupByKey().mapValues(lambda x:max(list(x)))

# 计算最小值
rdd10 = rdd6.groupByKey().mapValues(lambda x:min(list(x)))


# 查看数据


res6 = rdd6.collect()
print(res6)

res7 = rdd7.collect()
print(res7)

res8 = rdd8.collect()
print(res8)

res9 = rdd9.collect()
print(res9)

res10 = rdd10.collect()
print(res10)

计算不同性别不同年龄的年龄平均值

python 复制代码
from pyspark import SparkContext
sc = SparkContext()

# 1-读取文件数据
rdd = sc.textFile('hdfs://node1:8020/data/students.txt')

# 2-切割每行数据
rdd_line = rdd.map(lambda x:x.split(','))



#  计算不同性别不同年级的年龄平均值
# 方式一  (x[2],x[4])
rdd_kv2 = rdd_line.map(lambda x : ((x[2],x[4]),int(x[3])))
rdd_res2 = rdd_kv2.groupByKey().mapValues(lambda x : sum(list(x)) / len(list(x)))


# 方式二  x[2]+x[4]
rdd_kv3 = rdd_line.map(lambda x : (x[2]+x[4],int(x[3])))
rdd_res3 = rdd_kv2.groupByKey().mapValues(lambda x : sum(list(x)) / len(list(x)))




# 3-查看数据

res3 = rdd_kv2.collect()
print(res3)
res4 = rdd_res2.collect()
print(res4)

res6 = rdd_res3.collect()
print(res6)
res7 = rdd_res3.collect()
print(res7)

虽然两种map不同,但是结果相同

相关推荐
一只栖枝2 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
喂完待续6 小时前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
青云交6 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
还是大剑师兰特12 小时前
Flink面试题及详细答案100道(1-20)- 基础概念与架构
大数据·flink·大剑师·flink面试题
yh云想14 小时前
《从入门到精通:Kafka核心原理全解析》
分布式·kafka
1892280486115 小时前
NY243NY253美光固态闪存NY257NY260
大数据·网络·人工智能·缓存
武子康16 小时前
大数据-70 Kafka 日志清理:删除、压缩及混合模式最佳实践
大数据·后端·kafka
CCF_NOI.17 小时前
解锁聚变密码:从微观世界到能源新未来
大数据·人工智能·计算机·聚变
杨荧18 小时前
基于Python的电影评论数据分析系统 Python+Django+Vue.js
大数据·前端·vue.js·python
数据智研19 小时前
【数据分享】上市公司创新韧性数据(2007-2023)
大数据·人工智能