Spark Streaming频率

时间:2015-12-30 19:49:29

标签: scala apache-spark spark-streaming

In the example 流频率是1秒但是我不想每分钟打印字数的内容,并且每分钟再次重新计算字数。我怎么能这样做?

我必须以1秒的流频率打印每分钟工作计数。 我虽然使用scala调度程序,但随后可能存在并发问题。

我的算法如下:

  1. 每隔1秒阅读一次
  2. 累计工作时间为60秒
  3. 每60秒(1分钟)结束后打印工作计数并将计数器重新归零。
  4. 任何帮助将不胜感激!

    由于

1 个答案:

答案 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