map
代码--》集群
nc--》端口 9000 (可以修改)
替换 字
flatmap 切分压平
filter
repartition
union合并 【local【2】】 当只有两个的时候 只有一个分区 另一个处理数据集
count
reduce
************************
join 和 cogroup
用两个队列join
![](https://img2018.cnblogs.com/blog/1536927/201908/1536927-20190816141028578-1865364859.png)
![](https://img2018.cnblogs.com/blog/1536927/201908/1536927-20190816141152878-1943563346.png)
transform
![](https://img2018.cnblogs.com/blog/1536927/201908/1536927-20190816141651422-299728947.png)
*****************************************
以上算子都是无状态的 ............................................... 各处理各个
假如记录累加
DStream 的转化操作可以分为无状态(stateless)和有状态(stateful)两种。
• 在无状态转化操作中,每个批次的处理不依赖于之前批次的数据。常见
的 RDD 转化操作,例如 map()、filter()、reduceByKey() 等,都是无状态转
化操作。
• 相对地,有状态转化操作需要使用之前批次的数据或者是中间结果来计
算当前批次的数据。有状态转化操作包括基于滑动窗口的转化操作和追踪状态
变化的转化操作。
有状态转换操作
1.updateStateByKey 追踪状态变化
updateStateByKey
如下图:底层源码
![](https://img2018.cnblogs.com/blog/1536927/201908/1536927-20190816142750939-1060031779.png)
2.Window Operations 基于窗口
![](https://img2018.cnblogs.com/blog/1536927/201908/1536927-20190816150853695-1329519116.png)
批次时间 窗口大小 滑动频次
窗口大小批次时间的整数倍 多久滑动一次窗口 也是批次时间的整数倍
窗口分两种
滚动窗口 两个参数可以省掉 数据没有重叠
滑动窗口 不能省掉 数据有重叠