引用Spark commiter(gatorsmile)的话:“从Spark-2.X版本后,Spark streaming就进入维护模式,Spark streaming是低阶API,给码农用的,各种坑;Structured streaming是给人设计的API,简单易用。由于太忙,所以一直没有在官方文档上 更新说明信息”
Unbounded没有边界的表
每一条记录是个words
然后groupby(列的名字就是value)
Output mode
Complete mode方式
添加方式:
◼ Complete Mode The entire updated result will be written to the external storage
◼ Append Mode Only new rows appended in the Result Table since the last trigger will be written
◼ Update Mode Only the rows what were updated in the Result Table since the last trigger will be written
中午分割好像不是很友好
也可以换成updata,unbounded等等
Data set 处理对象
Dataframe处理字段
如果需要监听多端口把第一行多写几次然后union
添加一个word和时间戳
GroupBY window
添加一个word和时间戳
GroupBY window
总长10分钟 分割5分钟
Handling late data
数据延时
处理迟到的数据
通过event-time
通过这个可以把老数据清理或者进行其他操作
Water marking参数设置,超过10分钟后数据不要
使用dataframe的dataset
最新的dataset允许以上的操作了
!!!!
Spark后期只有两个数据结构
一个rdd一个dataset去除dataframe
Join operations
在join之前不可以map
不支持的有
不能对streaming进行多个聚合计算
取前几条记录
去重
对join有限制‘
排序支持,只有作为聚合计算的完全输出才允许排序
Foreach RDD
Lines—Dstream
Linse.map去做
为什么lines用foreach
这个跟rdd的foreach一样
处理rdd的记录,rdd.map()这个个变换,
Rdd.foreach 没返回值,自身消化
Map会形成新的
Lines.map是变换会形成rdd返回空,相当于把每一个rdd消化掉
Foreach是处理没有返回值,map是变换有返回值
Structured streaming
新的kafka api抓到缓冲里,而且把consumers放到cache
提升性能
做checkpointing时候可以把kafka的offset存入
Querykafka的streaming queries
批处理方式读kafka
写数据到kafka