sparkstream 上面batch触发,需要统计个东西a(如果符合某种条件),下面window触发需要统计个东西b(如果符合某种条件). 只要整个window内,a,b至少出现一次,那我就会触发另一个操作c. 这里以打印累加器值替代触发的c. yy yy1的出现代替 a b 是否触发. 总之是通过累加器对窗口内符合规则的事件是否至少发生一次的统计.
累加器支持累加 支持重置;
可以自定义累加器.
累加器如果是数组,多个task增加数据到数组,可能顺序会不一定,请注意.
下面是参考spark官方文档:package com.dh.sparkLearn
import org.apache.spark
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.util.LongAccumulator
import java.text.SimpleDateFormat
import java.time.format.DateTimeFormatter
import java.time.{LocalDateTime, ZoneOffset}
import java.util.Date
import scala.collection.mutable
import scala.collection.mutable._
import scala.collection.mutable.ListBuffer
object window_batch_trigger_time {
case class User(name: String, age: Int)
def main(args: Array[String]): Unit = {
val conf = ne


