AKKA FSM火花流

时间:2018-01-30 04:36:56

标签: apache-spark akka-fsm

我需要在我的spark流应用程序中创建状态机实现。通过一些帖子阅读后发现AKKA带有开箱即用的FSM。我创建了一个简单的AKKA FSM,我可以在本地运行它。我不知道如何将此代码集成到spark结构化流(mapGroupsWithState)中。我想把这个FSM插入到mapGroupsWithState中,这样即使我的应用程序出现故障,我也可以存储最后一个状态。

object BuilderFSM {

//States
sealed trait MachineState
case object tuned extends MachineState
case object trick extends MachineState
case object nonTuned extends MachineState

case class TuningEvent(macId: String, acctNumber: String, eventType: String)

}

object InputEvent {
sealed trait tuneEvents
sealed trait trickEvents

case object PLAY extends tuneEvents
case object REPLAY extends trickEvents
case object PLAY1 extends trickEvents
}

class BuilderFSM extends FSM[MachineState, TuningEvent] {
startWith(nonTuned, TuningEvent("DEVICE", "ACCOUNT", "NOTHING"))

when(nonTuned) {
case Event(PLAY, _) => {
  println("I am in NON-TUNE -> Going to Tuned")
  goto(tuned)
}
case Event(REPLAY, _) => {
  println("I am in NON-TUNED -> Going to Tuned")
  goto(tuned)
}} initialize()
}

0 个答案:

没有答案
相关问题