首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Flink + CEP -检测相同的事件

Apache Flink + CEP -检测相同的事件
EN

Stack Overflow用户
提问于 2016-08-04 22:27:57
回答 1查看 287关注 0票数 1

我想要检测具有相同属性的事件。假设我有一个简单的case类:

代码语言:javascript
复制
case class Record(name: String, value: Int)

假设有以下流:

代码语言:javascript
复制
Record("A", 1)
Record("B", 2)
Record("A", 3)
Record("C", 4)

然后我想要检测双"A“记录。这个是可能的吗?我现在有了这个:

代码语言:javascript
复制
val start: Pattern[Record, _] = myStream
.begin("first")
.followedBy("second").where(previous_record.name == _.name)
EN

回答 1

Stack Overflow用户

发布于 2016-08-10 17:03:50

我认为你正在定义什么是事件检测,你有没有尝试过这个:

代码语言:javascript
复制
val start: Pattern[Record, _] = myStream
   .begin("first").where(name == "A")
   .followedBy("second").where(name == "A")

更新:例如:

代码语言:javascript
复制
val patternIG: Pattern[(String,String), _] = Pattern.begin[String,String)]("start").where(_.name == "Ignition").where(_.ac == "ON").next("end").where(_.name == "Door").where(_.ac == "ON")
val patternStream: PatternStream[(String,String)] = CEP.pattern(mystream, patternIG)
def selectFn(pattern : mutable.Map[String,(String,String)]): String = {
val startEvent = pattern.get("start").get
val endEvent = pattern.get("end").get
  "ALERT Door Open"
}
val patternStreamSelected = patternStream.select(selectFn(_)).print()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38770195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档