In the example 流频率是1秒但是我不想每分钟打印字数的内容,并且每分钟再次重新计算字数。我怎么能这样做?
我必须以1秒的流频率打印每分钟工作计数。 我虽然使用scala调度程序,但随后可能存在并发问题。
我的算法如下:
任何帮助将不胜感激!
由于
答案 0 :(得分:1)
您可以使用Spark Streaming的Window功能。
以下是一些示例代码: -
//val sparkConf = new SparkConf()
val ssc = new StreamingContext(sparkConf, Seconds(1))
//Assuming you are getting some Random lines through Socket opened at port 4099
val lines = streamCtx.socketTextStream("localhost", 4099,MEMORY_AND_DISK_SER_2)
//Window Duration set to 60 Seconds
val windowStream = lines.window(60)
//Now leverage "windowStream" and do further calculations
//Your "windowStream" will contain the data received in last 60 seconds
有关更多信息,请参阅“窗口”功能,请参阅http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.streaming.dstream.DStream