1. DStream转换概述:DStream操作分Transformations(转换)和Output Operations(输出)两类,转换操作中有 updateStateByKey() 、 transform() 及Window相关原语等特殊操作。
2. 无状态转化操作:将简单RDD转化操作应用于DStream的每个批次(即每个RDD)。针对键值对的DStream转化操作,在Scala中使用时需添加 import StreamingContext._ 。
3. Transform操作:允许在DStream上执行任意RDD-to-RDD函数,可扩展Spark API,每一批次调度一次。示例代码通过 transform 对从socket接收的数据进行处理,先按空格拆分、映射为(word, 1)形式,再按键归约统计词频,最后打印结果。
4. join操作:两个流进行join时,批次大小需一致以同时触发计算,计算过程是对当前批次两个流的RDD进行join。示例代码从两个不同节点的socket接收数据,分别处理成 (word, 1) 和 (word, "a") 形式的DStream,然后进行join操作并打印结果。