一、aggregateByKey应用举例
1、uv统计
输入元祖数据格式:
("201612091515 www.sohu.cn 121.23.24.21","23 2 45 67 dsks")
实现代码:
val uv_init: RDD[(String, String)] = ??
//累加,去重放到set集合
val uv_calculate: RDD[(String, mutable.HashSet[String])] =uv_init.aggregateByKey(zeroSet,2)((set, elment) => set += elment, (sets, one_set) => sets ++= one_set )
//结果输出
val uv=uv_calculate.map(x => x._1+"\t"+x._2.size)
// 201612091515 www.sohu.cn 121.23.24.21 他的uv数
输出一行一行的数据:
201612091515 www.sohu.cn 121.23.24.21 他的uv数量
二、reduceByKey应用举例
1、单词统计
输入一行一行的文本格式:
wc wr
tt hello
hello wc
实现代码:
<
本文深入探讨Spark的RDD操作,重点解析aggregateByKey和reduceByKey的实际应用场景。通过uv统计和单词计数的例子,展示了这两个算子如何处理数据并生成聚合结果。
订阅专栏 解锁全文
3860

被折叠的 条评论
为什么被折叠?



