esper检测事件值的变化
esper detect change in value of Event
嘿!
我的 esper 代码有一个小问题。输入是这样的:
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Speed', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Speed', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =3}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
我有一种事件类型,它有一个变量名和一个值。
我想检测一个特定变量值的变化。
所以我需要一个 select 语句,它在 :
处给我数据
- 秒 4(温度从 1->2 更改)
- second 5 (Press 由 1->2 改变)
- 秒 6(速度从 1->2 更改)
- second 7(按从 2->1 更改)
- 秒 9(温度从 2->3 更改)
我用 prior
和 prev
尝试了不同的东西,但没有任何效果。
这是我做的最合理的一个,但它没有给我想要的结果。我用一个模式试了一下,但是我得到了@SuppressOverlappingMatches 的内存过载。
select value as x from CondiA#unique(varible) as A where prior(1, A.value) != A.value AND varible = (select varible from CondiA()#lastevent);
如果我对要求的理解正确,每个 "varible" 分区都是独立的,并且在每个值 "varible" 中您需要 "prior"?
您可以使用这样的上下文来执行此操作
create context PerVarible partition by varible from CondiA;
context PerVarible select value as x from CondiA where prior(1, A.value) != A.value;
注释,
- 无需数据window,"prior"无需数据即可运行
- "prev" 可以代替 "prior" 和 grouped-window 一起使用,请参阅文档,在这种情况下您不需要分区
嘿! 我的 esper 代码有一个小问题。输入是这样的:
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Speed', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Speed', value =2}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
t=t.plus(1 seconds)
CondiA ={varible ='Temp', value =3}
t=t.plus(1 seconds)
CondiA ={varible ='Press', value =1}
我有一种事件类型,它有一个变量名和一个值。 我想检测一个特定变量值的变化。 所以我需要一个 select 语句,它在 :
处给我数据- 秒 4(温度从 1->2 更改)
- second 5 (Press 由 1->2 改变)
- 秒 6(速度从 1->2 更改)
- second 7(按从 2->1 更改)
- 秒 9(温度从 2->3 更改)
我用 prior
和 prev
尝试了不同的东西,但没有任何效果。
这是我做的最合理的一个,但它没有给我想要的结果。我用一个模式试了一下,但是我得到了@SuppressOverlappingMatches 的内存过载。
select value as x from CondiA#unique(varible) as A where prior(1, A.value) != A.value AND varible = (select varible from CondiA()#lastevent);
如果我对要求的理解正确,每个 "varible" 分区都是独立的,并且在每个值 "varible" 中您需要 "prior"?
您可以使用这样的上下文来执行此操作
create context PerVarible partition by varible from CondiA;
context PerVarible select value as x from CondiA where prior(1, A.value) != A.value;
注释,
- 无需数据window,"prior"无需数据即可运行
- "prev" 可以代替 "prior" 和 grouped-window 一起使用,请参阅文档,在这种情况下您不需要分区