大数据全系列 教程
1869个小节阅读:467.6k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
无状态转化操作就是把简单的RDD转化操作应用到每个批次上,也就是转化DStream中的每一个RDD。部分无状态转化操作列在了下表中。
注意,针对键值对的DStream转化操作(比如reduceByKey()
)要添加import StreamingContext._
才能在Scala中使用。
方法名称 | 作用 | 参数函数签名 | 示例 |
---|---|---|---|
flatMap() | 对DS中的每个元素应用 给定函数,返回由各元 素输出的迭代器组成的DS | f∶T=>Iterable[U] | flatMap(x =>x.split(" ")) |
map() | 对DS中的每个元素应用给 定函数,返回由各元素输 出的元素组成的DS | f:(T)=>U | map(x =>x*2) |
filter() | 返回由给定DS中通过筛 选的元素组成的DS | f:T=>Boolean | filter(x =>x%2==0) |
repartition() | 改变DStream的分区数 | N/A | repartition(5) |
reduceByKey() | 将每个批次中键相同 的记录归约 | f:T,T=>T | reduceByKey(_+_) |
groupByKey() | 将每个批次中的记录 根据键分组 | N/A | groupByKey() |
需要记住的是,尽管这些函数看起来像作用在整个流上一样,但事实上每个DStream在内部是由许多RDD(批次)组成,且无状态转化操作是分别应用到每个RDD上的。
例如:reduceByKey()会归约每个时间区间中的数据,但不会归约不同区间之间的数据。
实时效果反馈
1. 以下哪个选项不是无状态转换?
A flatMap()
B map()
C updateStateByKey()
D reduceByKey()
答案:
1=>C