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不同,但是结果相同

相关推荐
大大大大晴天20 小时前
Hudi技术内幕:Key Generation原理与实践
大数据
得物技术4 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子4 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1235 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能5 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel5 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574095 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf
极光代码工作室5 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
秋名山码民5 天前
Graph RAG 深度解析:从向量检索到知识推理的技术演进
大数据·人工智能·rag