2017-01-03 66 views
0

假设我有一个数据流分类或数据流的GroupBy数据和流程与CEP分别

x:1, y:2 , z:3 , x:7 , y:-1, z:0, z:3 , z:2, y:3 ,x: 2 ,y:6 

我怎么把x,y,z在自己的水桶和应用上我的CEP规则。

x:1, x:7,x: 2 
y:2, y:-1, y:3 , y:6 
z:3, z:0 , z:3, z:2 

或以其他方式表达。如何将流分成这些类别(每个x,y,z一个流)。我会得到3个具有自己的CEP处理的子流。

这里的挑战是,x,y,z没有预先定义。所以我不能预先创建流并使用if或switch语句进行赋值。

编辑: 的图案将是等,”如果x值是0之间 - 8为最后10分钟

回答

0

这是通过‘键控’的类别属性的流

如果你有一个DataStream[(String, Int)]这看起来如下:

val yourStream: DataStream[(String, Int)] = ??? 
val yourPattern: Pattern = ??? 

// key by String attribute 
val keyedStream = yourStream.keyBy(_._1) 
// apply pattern on keyed stream 
val patternStream: PatternStream = CEP.pattern(keyedStream, yourPattern) 

模式将为键属性的每个不同的值进行评估

+0

编辑我的问题。我将如何使其符合我的要求。我必须观看10分钟的x值并做出决定。 – madhairsilence