我想在Spark Streaming中使用mapWithState函数,版本是Spark 1.6,Scala 2.10。
以下是我的代码的一部分:
def updateState(batchTime: Time, key: String, value: Option[String], state: State[Double]): Option[(String, Double)] = {
val sum = state.getOption.getOrElse(0.0) + 1.0
val output = (key, sum)
state.update(sum)
println("current state: "+state.get().toString())
Some(output)
}
val stateSpec = StateSpec.function(updateState _)
.numPartitions(2)
.timeout(Seconds(60))
每次运行时,当前状态始终为1。
我是Spark Streaming的新手,如果您需要更多信息,请告诉我。