学习SparkStreaming之前建议 先学习Scala 和 Spark ,这两个学好了,用法大同小异
SparkStreaming使用离散化流作为抽象表示,叫做DStream。可用netcat做测试
SparkStream 用采集器间隔时间从数据源采集数据,装成一个个离散化流,离散化流再发给driver,最终发给executor执行
def sparkStreamingTest={
//配置spark,每隔3秒拉取数据
val sc = new SparkConf().setMaster("local[*]").setAppName("hello")
val streamContext = new StreamingContext(sc,Seconds(3))
val lineRdd: ReceiverInputDStream[String] = streamContext.socketTextStream("",9999)
//处理数据
val result = lineRdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
result.print()
//启动采集器
streamContext.start()
//Dirver等待采集器的执行
streamContext.awaitTermination()
}
窗口滑动(window方法),可用于图标,类似 15:00 -16:00之间的天气变化