大数据全系列 教程
1869个小节阅读:466.7k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
reduceByKey(func)
适用于Key-Value类型的RDD,自动按照key进行分组,然后根据提供的函数func的逻辑进行聚合操作,完成组内所有value的聚合操作。
func:(T,T)=>T 传入两个参数,一个返回值,返回值和两个参数的类型要求一致。
比如:有一组数据的value值分别为[1,2,3,4],func为lambda x,y:x+y,聚合步骤如下:
对相同key的数据执行聚合相加操作
xxxxxxxxxx
package com.itbaizhan.rdd
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RddReduceByKey {
def main(args: Array[String]): Unit = {
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("reduceByKey")
val sc = new SparkContext(conf)
//1.创建一个Key-Value类型的RDD对象
val rdd: RDD[(String, Int)] = sc.parallelize(List(("a", 1), ("a", 2), ("b", 1), ("a", 3), ("b", 1), ("a", 4)))
//2.将相同的key的value做聚合加操作
//val rdd1: RDD[(String, Int)] = rdd.reduceByKey((x, y) => x + y)
val rdd1: RDD[(String, Int)] = rdd.reduceByKey(_+_)
println(rdd1.collect().mkString(","))
sc.stop()
}
}
运行结果:
xxxxxxxxxx
('a', 10), ('b', 2)
实时效果反馈
1. 以下关于RDD的reduceByKey算子以及函数参数func:(T,T)=>T
的描述正确的是:
A 适用于Key-Value类型的RDD。
B 自动按照key进行分组,然后根据提供的函数func的逻辑进行聚合操作,完成组内所有value的聚合操作。
C 传入两个参数,一个返回值,返回值和两个参数的类型要求一致。
D 以上三个选项都正确。
答案:
1=>D