2016-04-12 9 views
0

私はesperを使って新しいです。最新のイベントの要素を取得する方法(null値をフィルタリングする必要があります)

私のイベントにこれらの要素(key、index、e0、e1、e2 ....)があり、e1が存在するかどうかにかかわらず、最新の"index"'s element:“e1”(null値を除く)キーでグループ化します。

私はこのようなEPL書いた:あなたは、[キー= 3]さんE1 =ヌルの結果を参照してください、私は期待し

send event :{key=0, index=0, e0=5, e1=1} 

send event :{**key=3**, index=1, **e1=2**, e2=6} 

send event :{**key=3**, index=2, e0=0, e3=2} **//the event e1 is not exist** 

send event :{key=1, index=3, e2=8, e3=4} 

sliding win output: {key=0, sum(e2)=null, e1=1} 

sliding win output: {key=1, sum(e2)=8, e1=null} 

sliding win output: {**key=3**, sum(e2)=6, **e1=null**} 

:以下のような

select key, sum(e2), maxby(index).e1 as e1 from Event.win:time_batch(3 sec) group by key 

出力例をe1 = nullイベントをフィルタリングし、e1 = 2を出力する必要があります

"maxby"は、"fmax"のような条件を追加できません。

どうすればEPLでフィルタリングできますか?

答えて

0

だけe1がnullである場合を

+0

"...イベントから(e1がnullではない)..." を追加しますが、あなたのEPLフィルタ:「{= 3 **キー**、インデックス= 2を、 e0 = 0、e3 = 2} "、e3 = 2も削除されます.e3が必要な場合は、このevnetを削除できません。 @ user650839 – alphacome

+0

"maxby"はUDFへの呼び出しを含む任意の式を取ることができるので、 "maxby(e1がヌル、次にヌルインデックスが終了した場合)のようなことをすると思います。 – user650839

+0

"maxby(e1がヌル、ヌル、インデックス終了の場合)" ----うまくいく、ありがとう~~~~~ @ user650839あなたは本当に私を助けました。 .. buut、上記のようにe1の 'minby'インデックスグループキーを取得しようとすると、うまくいきませんでした。' minby(e1がnullの場合、null以外の場合はインデックス終了) ' sendイベント:{キー= 0、インデックス= 12、E2 = 6、E3 = 3} 送信イベント:{キー= 0、インデックス= 13、** E1 = 4 **} 摺動勝利出力:{キー= 0、sum(e2)= 6、** e1 = null **} なぜ機能しないのですか?それを書く方法? – alphacome

関連する問題